Skip to content

Commit 1b7e761

Browse files
committed
Remove SecurityTokenRepository from AuthorizationCodeAuthenticationProvider constructor
Fixes gh-4591
1 parent eb320bf commit 1b7e761

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/client/AuthorizationCodeAuthenticationFilterConfigurer.java

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.springframework.security.oauth2.client.authentication.jwt.JwtDecoderRegistry;
2828
import org.springframework.security.oauth2.client.authentication.jwt.nimbus.NimbusJwtDecoderRegistry;
2929
import org.springframework.security.oauth2.client.registration.ClientRegistrationRepository;
30-
import org.springframework.security.oauth2.client.token.InMemoryAccessTokenRepository;
3130
import org.springframework.security.oauth2.client.token.SecurityTokenRepository;
3231
import org.springframework.security.oauth2.client.user.CustomUserTypesOAuth2UserService;
3332
import org.springframework.security.oauth2.client.user.DefaultOAuth2UserService;
@@ -130,8 +129,10 @@ String getLoginFailureUrl() {
130129
@Override
131130
public void init(H http) throws Exception {
132131
AuthorizationCodeAuthenticationProvider authorizationCodeAuthenticationProvider =
133-
new AuthorizationCodeAuthenticationProvider(
134-
this.getAuthorizationCodeAuthenticator(), this.getAccessTokenRepository());
132+
new AuthorizationCodeAuthenticationProvider(this.getAuthorizationCodeAuthenticator());
133+
if (this.accessTokenRepository != null) {
134+
authorizationCodeAuthenticationProvider.setAccessTokenRepository(this.accessTokenRepository);
135+
}
135136
authorizationCodeAuthenticationProvider = this.postProcess(authorizationCodeAuthenticationProvider);
136137
http.authenticationProvider(authorizationCodeAuthenticationProvider);
137138

@@ -180,13 +181,6 @@ private AuthorizationGrantTokenExchanger<AuthorizationCodeAuthenticationToken> g
180181
return this.authorizationCodeTokenExchanger;
181182
}
182183

183-
private SecurityTokenRepository<AccessToken> getAccessTokenRepository() {
184-
if (this.accessTokenRepository == null) {
185-
this.accessTokenRepository = new InMemoryAccessTokenRepository();
186-
}
187-
return this.accessTokenRepository;
188-
}
189-
190184
private JwtDecoderRegistry getJwtDecoderRegistry() {
191185
if (this.jwtDecoderRegistry == null) {
192186
this.jwtDecoderRegistry = new NimbusJwtDecoderRegistry();

oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/authentication/AuthorizationCodeAuthenticationProvider.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import org.springframework.security.authentication.AuthenticationProvider;
1919
import org.springframework.security.core.Authentication;
2020
import org.springframework.security.core.AuthenticationException;
21+
import org.springframework.security.oauth2.client.token.InMemoryAccessTokenRepository;
2122
import org.springframework.security.oauth2.client.token.SecurityTokenRepository;
2223
import org.springframework.security.oauth2.core.AccessToken;
2324
import org.springframework.security.oauth2.oidc.client.authentication.OidcClientAuthenticationToken;
@@ -49,16 +50,13 @@
4950
*/
5051
public class AuthorizationCodeAuthenticationProvider implements AuthenticationProvider {
5152
private final AuthorizationGrantAuthenticator<AuthorizationCodeAuthenticationToken> authorizationCodeAuthenticator;
52-
private final SecurityTokenRepository<AccessToken> accessTokenRepository;
53+
private SecurityTokenRepository<AccessToken> accessTokenRepository = new InMemoryAccessTokenRepository();
5354

5455
public AuthorizationCodeAuthenticationProvider(
55-
AuthorizationGrantAuthenticator<AuthorizationCodeAuthenticationToken> authorizationCodeAuthenticator,
56-
SecurityTokenRepository<AccessToken> accessTokenRepository) {
56+
AuthorizationGrantAuthenticator<AuthorizationCodeAuthenticationToken> authorizationCodeAuthenticator) {
5757

5858
Assert.notNull(authorizationCodeAuthenticator, "authorizationCodeAuthenticator cannot be null");
59-
Assert.notNull(accessTokenRepository, "accessTokenRepository cannot be null");
6059
this.authorizationCodeAuthenticator = authorizationCodeAuthenticator;
61-
this.accessTokenRepository = accessTokenRepository;
6260
}
6361

6462
@Override
@@ -76,6 +74,11 @@ public Authentication authenticate(Authentication authentication) throws Authent
7674
return oauth2ClientAuthentication;
7775
}
7876

77+
public final void setAccessTokenRepository(SecurityTokenRepository<AccessToken> accessTokenRepository) {
78+
Assert.notNull(accessTokenRepository, "accessTokenRepository cannot be null");
79+
this.accessTokenRepository = accessTokenRepository;
80+
}
81+
7982
@Override
8083
public boolean supports(Class<?> authentication) {
8184
return AuthorizationCodeAuthenticationToken.class.isAssignableFrom(authentication);

0 commit comments

Comments
 (0)