|  | @@ -421,7 +421,10 @@ class OAuth2LoginConfig {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  If you are not able to use Spring Boot 2.x and would like to configure one of the pre-defined providers in `CommonOAuth2Provider` (for example, Google), apply the following configuration:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -[source,java]
 | 
	
		
			
				|  |  | +.OAuth2 Login Configuration
 | 
	
		
			
				|  |  | +====
 | 
	
		
			
				|  |  | +.Java
 | 
	
		
			
				|  |  | +[source,java,role="primary"]
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  |  @Configuration
 | 
	
		
			
				|  |  |  public class OAuth2LoginConfig {
 | 
	
	
		
			
				|  | @@ -465,6 +468,33 @@ public class OAuth2LoginConfig {
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +.Xml
 | 
	
		
			
				|  |  | +[source,xml,role="secondary"]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http auto-config="true">
 | 
	
		
			
				|  |  | +	<intercept-url pattern="/**" access="authenticated"/>
 | 
	
		
			
				|  |  | +	<oauth2-login authorized-client-repository-ref="authorizedClientRepository"/>
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<client-registrations>
 | 
	
		
			
				|  |  | +	<client-registration registration-id="google"
 | 
	
		
			
				|  |  | +						 client-id="google-client-id"
 | 
	
		
			
				|  |  | +						 client-secret="google-client-secret"
 | 
	
		
			
				|  |  | +						 provider-id="google"/>
 | 
	
		
			
				|  |  | +</client-registrations>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<b:bean id="authorizedClientService"
 | 
	
		
			
				|  |  | +		class="org.springframework.security.oauth2.client.InMemoryOAuth2AuthorizedClientService"
 | 
	
		
			
				|  |  | +		autowire="constructor"/>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +<b:bean id="authorizedClientRepository"
 | 
	
		
			
				|  |  | +		class="org.springframework.security.oauth2.client.web.AuthenticatedPrincipalOAuth2AuthorizedClientRepository">
 | 
	
		
			
				|  |  | +	<b:constructor-arg ref="authorizedClientService"/>
 | 
	
		
			
				|  |  | +</b:bean>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +====
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  [[oauth2login-advanced]]
 | 
	
		
			
				|  |  |  === Advanced Configuration
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -628,6 +658,33 @@ class OAuth2LoginSecurityConfig : WebSecurityConfigurerAdapter() {
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  |  ====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +In addition to the `oauth2Login()` DSL, XML configuration is also supported.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +The following code shows the complete configuration options available in the <<nsa-oauth2-login, security namespace>>:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.OAuth2 Login XML Configuration Options
 | 
	
		
			
				|  |  | +====
 | 
	
		
			
				|  |  | +[source,xml]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http>
 | 
	
		
			
				|  |  | +	<oauth2-login client-registration-repository-ref="clientRegistrationRepository"
 | 
	
		
			
				|  |  | +				  authorized-client-repository-ref="authorizedClientRepository"
 | 
	
		
			
				|  |  | +				  authorized-client-service-ref="authorizedClientService"
 | 
	
		
			
				|  |  | +				  authorization-request-repository-ref="authorizationRequestRepository"
 | 
	
		
			
				|  |  | +				  authorization-request-resolver-ref="authorizationRequestResolver"
 | 
	
		
			
				|  |  | +				  access-token-response-client-ref="accessTokenResponseClient"
 | 
	
		
			
				|  |  | +				  user-authorities-mapper-ref="userAuthoritiesMapper"
 | 
	
		
			
				|  |  | +				  user-service-ref="oauth2UserService"
 | 
	
		
			
				|  |  | +				  oidc-user-service-ref="oidcUserService"
 | 
	
		
			
				|  |  | +				  login-processing-url="/login/oauth2/code/*"
 | 
	
		
			
				|  |  | +				  login-page="/login"
 | 
	
		
			
				|  |  | +				  authentication-success-handler-ref="authenticationSuccessHandler"
 | 
	
		
			
				|  |  | +				  authentication-failure-handler-ref="authenticationFailureHandler"
 | 
	
		
			
				|  |  | +				  jwt-decoder-factory-ref="jwtDecoderFactory"/>
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +====
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  The following sections go into more detail on each of the configuration options available:
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  * <<oauth2login-advanced-login-page, OAuth 2.0 Login Page>>
 | 
	
	
		
			
				|  | @@ -701,6 +758,16 @@ class OAuth2LoginSecurityConfig : WebSecurityConfigurerAdapter() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.Xml
 | 
	
		
			
				|  |  | +[source,xml,role="secondary"]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http>
 | 
	
		
			
				|  |  | +	<oauth2-login login-page="/login/oauth2"
 | 
	
		
			
				|  |  | +				  ...
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  |  ====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [IMPORTANT]
 | 
	
	
		
			
				|  | @@ -771,6 +838,16 @@ class OAuth2LoginSecurityConfig : WebSecurityConfigurerAdapter() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.Xml
 | 
	
		
			
				|  |  | +[source,xml,role="secondary"]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http>
 | 
	
		
			
				|  |  | +	<oauth2-login login-processing-url="/login/oauth2/callback/*"
 | 
	
		
			
				|  |  | +				  ...
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  |  ====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  [IMPORTANT]
 | 
	
	
		
			
				|  | @@ -906,6 +983,16 @@ class OAuth2LoginSecurityConfig : WebSecurityConfigurerAdapter() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.Xml
 | 
	
		
			
				|  |  | +[source,xml,role="secondary"]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http>
 | 
	
		
			
				|  |  | +	<oauth2-login user-authorities-mapper-ref="userAuthoritiesMapper"
 | 
	
		
			
				|  |  | +				  ...
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  |  ====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  Alternatively, you may register a `GrantedAuthoritiesMapper` `@Bean` to have it automatically applied to the configuration, as shown in the following example:
 | 
	
	
		
			
				|  | @@ -1040,6 +1127,16 @@ class OAuth2LoginSecurityConfig : WebSecurityConfigurerAdapter() {
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  ----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +.Xml
 | 
	
		
			
				|  |  | +[source,xml,role="secondary"]
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  | +<http>
 | 
	
		
			
				|  |  | +	<oauth2-login oidc-user-service-ref="oidcUserService"
 | 
	
		
			
				|  |  | +				  ...
 | 
	
		
			
				|  |  | +    />
 | 
	
		
			
				|  |  | +</http>
 | 
	
		
			
				|  |  | +----
 | 
	
		
			
				|  |  |  ====
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 |