Provide oauth2login.tokenEndpoint config

Fixes gh-4506
This commit is contained in:
Joe Grandja 2017-08-22 14:46:41 -04:00
parent c06975080f
commit 91b0bd4ba5
2 changed files with 33 additions and 15 deletions

View File

@ -52,15 +52,17 @@ public final class OAuth2LoginConfigurer<H extends HttpSecurityBuilder<H>> exten
private final AuthorizationCodeRequestRedirectFilterConfigurer authorizationCodeRequestRedirectFilterConfigurer; private final AuthorizationCodeRequestRedirectFilterConfigurer authorizationCodeRequestRedirectFilterConfigurer;
private final AuthorizationCodeAuthenticationFilterConfigurer authorizationCodeAuthenticationFilterConfigurer; private final AuthorizationCodeAuthenticationFilterConfigurer authorizationCodeAuthenticationFilterConfigurer;
private final AuthorizationEndpointConfig authorizationEndpoint; private final AuthorizationEndpointConfig authorizationEndpointConfig;
private final RedirectionEndpointConfig redirectionEndpoint; private final TokenEndpointConfig tokenEndpointConfig;
private final RedirectionEndpointConfig redirectionEndpointConfig;
private final UserInfoEndpointConfig userInfoEndpointConfig; private final UserInfoEndpointConfig userInfoEndpointConfig;
public OAuth2LoginConfigurer() { public OAuth2LoginConfigurer() {
this.authorizationCodeRequestRedirectFilterConfigurer = new AuthorizationCodeRequestRedirectFilterConfigurer<>(); this.authorizationCodeRequestRedirectFilterConfigurer = new AuthorizationCodeRequestRedirectFilterConfigurer<>();
this.authorizationCodeAuthenticationFilterConfigurer = new AuthorizationCodeAuthenticationFilterConfigurer<>(); this.authorizationCodeAuthenticationFilterConfigurer = new AuthorizationCodeAuthenticationFilterConfigurer<>();
this.authorizationEndpoint = new AuthorizationEndpointConfig(); this.authorizationEndpointConfig = new AuthorizationEndpointConfig();
this.redirectionEndpoint = new RedirectionEndpointConfig(); this.tokenEndpointConfig = new TokenEndpointConfig();
this.redirectionEndpointConfig = new RedirectionEndpointConfig();
this.userInfoEndpointConfig = new UserInfoEndpointConfig(); this.userInfoEndpointConfig = new UserInfoEndpointConfig();
} }
@ -76,14 +78,6 @@ public final class OAuth2LoginConfigurer<H extends HttpSecurityBuilder<H>> exten
return this; return this;
} }
public OAuth2LoginConfigurer<H> authorizationCodeTokenExchanger(
AuthorizationGrantTokenExchanger<AuthorizationCodeAuthenticationToken> authorizationCodeTokenExchanger) {
Assert.notNull(authorizationCodeTokenExchanger, "authorizationCodeTokenExchanger cannot be null");
this.authorizationCodeAuthenticationFilterConfigurer.authorizationCodeTokenExchanger(authorizationCodeTokenExchanger);
return this;
}
public OAuth2LoginConfigurer<H> userAuthoritiesMapper(GrantedAuthoritiesMapper userAuthoritiesMapper) { public OAuth2LoginConfigurer<H> userAuthoritiesMapper(GrantedAuthoritiesMapper userAuthoritiesMapper) {
Assert.notNull(userAuthoritiesMapper, "userAuthoritiesMapper cannot be null"); Assert.notNull(userAuthoritiesMapper, "userAuthoritiesMapper cannot be null");
this.authorizationCodeAuthenticationFilterConfigurer.userAuthoritiesMapper(userAuthoritiesMapper); this.authorizationCodeAuthenticationFilterConfigurer.userAuthoritiesMapper(userAuthoritiesMapper);
@ -103,7 +97,7 @@ public final class OAuth2LoginConfigurer<H extends HttpSecurityBuilder<H>> exten
} }
public AuthorizationEndpointConfig authorizationEndpoint() { public AuthorizationEndpointConfig authorizationEndpoint() {
return this.authorizationEndpoint; return this.authorizationEndpointConfig;
} }
public class AuthorizationEndpointConfig { public class AuthorizationEndpointConfig {
@ -128,8 +122,30 @@ public final class OAuth2LoginConfigurer<H extends HttpSecurityBuilder<H>> exten
} }
} }
public TokenEndpointConfig tokenEndpoint() {
return this.tokenEndpointConfig;
}
public class TokenEndpointConfig {
private TokenEndpointConfig() {
}
public TokenEndpointConfig authorizationCodeTokenExchanger(
AuthorizationGrantTokenExchanger<AuthorizationCodeAuthenticationToken> authorizationCodeTokenExchanger) {
Assert.notNull(authorizationCodeTokenExchanger, "authorizationCodeTokenExchanger cannot be null");
OAuth2LoginConfigurer.this.authorizationCodeAuthenticationFilterConfigurer.authorizationCodeTokenExchanger(authorizationCodeTokenExchanger);
return this;
}
public OAuth2LoginConfigurer<H> and() {
return OAuth2LoginConfigurer.this;
}
}
public RedirectionEndpointConfig redirectionEndpoint() { public RedirectionEndpointConfig redirectionEndpoint() {
return this.redirectionEndpoint; return this.redirectionEndpointConfig;
} }
public class RedirectionEndpointConfig { public class RedirectionEndpointConfig {

View File

@ -366,7 +366,9 @@ public class OAuth2LoginApplicationTests {
.anyRequest().authenticated() .anyRequest().authenticated()
.and() .and()
.oauth2Login() .oauth2Login()
.authorizationCodeTokenExchanger(this.mockAuthorizationCodeTokenExchanger()) .tokenEndpoint()
.authorizationCodeTokenExchanger(this.mockAuthorizationCodeTokenExchanger())
.and()
.userInfoEndpoint() .userInfoEndpoint()
.userInfoService(this.mockUserInfoService()); .userInfoService(this.mockUserInfoService());
} }