Add Azure platform support to Spring Boot.

More specifically, this adds "Azure App Service" support to Spring Boot - as this is the Azure standard PaaS service, it makes sense to give it the "AZURE" enum name. If it provides any additional value, we can add later Azure Functions and Azure Spring Cloud, but those shouldn't be the default and would have their own enumeration name, as they work very differently.

This discovers Azure using the "WEBSITE_SITE_NAME" environment properties, which is similar to what is done with Heroku (using the "DYNO" environment property).

I put Azure near the top of the file, trying to have some alphabetical sorting after "NONE", as I believe this is how people will read that class.

As a consequence, setting this value should put server.forward-headers-strategy=native by default, which will allow applications to receive sensitive security headers from the reverse proxy. More specifically, this will solve this error, when using Active Directory to secure App Service, which looks pretty common: https://stackoverflow.com/questions/60365017/redirect-url-for-spring-oauth2-app-on-azure-with-active-directory-invalid-redir

Comment From: jdubois

After internal discussion at Microsoft, I'm going to modify this PR to use "AZURE_APP_SERVICE" instead of "AZURE", in order to be clear on the service that is being used.

Comment From: cuspymd

There seems to be no problem with the operation, but I'm afraid I can't understand it. It's a very common variable name, could you be sure that only azure uses this variable name?

Is it difficult to add an environment variable representing azure? It may sound rude, but I ask because I'm really curious.

Comment From: jdubois

You are correct @cuspymd but unfortunately there isn't a good specific environment variable for Azure. Let me try to find a second one, and then I'll use the combinaison of them to reduce the risk.

Comment From: jdubois

It looks like "WEBSITES_ENABLE_APP_SERVICE_STORAGE" is used everywhere (at least for Java and Docker, and they are the only ones interesting for Spring), so I'm going to use both variables in order to reduce the risk. Thanks @cuspymd !

Comment From: cuspymd

@jdubois Thank you for checking.

Comment From: wilkinsona

Thanks very much, @jdubois. The proposed changes have now been merged.