Skip to content

Commit ef949a6

Browse files
ovidiupopa07jgrandja
authored andcommitted
Fix registration access token cannot be deserialized
Change the authorized scopes Set from SingletonSet to UnmodifiableSet as there is no mixin registered for SingletonSet Closes spring-projectsgh-495
1 parent 0c34538 commit ef949a6

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/oidc/authentication/OidcClientRegistrationAuthenticationProvider.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import java.util.Base64;
2222
import java.util.Collection;
2323
import java.util.Collections;
24+
import java.util.HashSet;
2425
import java.util.List;
2526
import java.util.Set;
2627
import java.util.UUID;
@@ -218,7 +219,9 @@ private OidcClientRegistrationAuthenticationToken registerClient(OidcClientRegis
218219
private OAuth2Authorization registerAccessToken(RegisteredClient registeredClient) {
219220
JoseHeader headers = JwtUtils.headers().build();
220221

221-
Set<String> authorizedScopes = Collections.singleton(DEFAULT_CLIENT_CONFIGURATION_AUTHORIZED_SCOPE);
222+
Set<String> authorizedScopes = new HashSet<>();
223+
authorizedScopes.add(DEFAULT_CLIENT_CONFIGURATION_AUTHORIZED_SCOPE);
224+
authorizedScopes = Collections.unmodifiableSet(authorizedScopes);
222225

223226
JwtClaimsSet claims = JwtUtils.accessTokenClaims(
224227
registeredClient, this.providerSettings.getIssuer(), registeredClient.getClientId(), authorizedScopes)

oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/authorization/OidcClientRegistrationTests.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
import org.springframework.security.oauth2.jose.TestJwks;
6363
import org.springframework.security.oauth2.jose.jws.SignatureAlgorithm;
6464
import org.springframework.security.oauth2.jwt.JwtDecoder;
65+
import org.springframework.security.oauth2.server.authorization.JdbcOAuth2AuthorizationService;
66+
import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
6567
import org.springframework.security.oauth2.server.authorization.client.JdbcRegisteredClientRepository;
6668
import org.springframework.security.oauth2.server.authorization.client.JdbcRegisteredClientRepository.RegisteredClientParametersMapper;
6769
import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
@@ -323,6 +325,11 @@ RegisteredClientRepository registeredClientRepository(JdbcOperations jdbcOperati
323325
return registeredClientRepository;
324326
}
325327

328+
@Bean
329+
OAuth2AuthorizationService authorizationService(JdbcOperations jdbcOperations, RegisteredClientRepository registeredClientRepository) {
330+
return new JdbcOAuth2AuthorizationService(jdbcOperations, registeredClientRepository);
331+
}
332+
326333
@Bean
327334
JdbcOperations jdbcOperations() {
328335
return new JdbcTemplate(db);

0 commit comments

Comments
 (0)