Skip to content

Commit 6973519

Browse files
committed
Removed OidcIdTokenDecoderFactory jwtDecoders cache from OidcIdTokenDecoderFactory and ReactiveOidcIdTokenDecoderFactory
Signed-off-by: iigolovko <[email protected]>
1 parent 437688d commit 6973519

File tree

4 files changed

+3
-72
lines changed

4 files changed

+3
-72
lines changed

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

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.Collections;
2424
import java.util.HashMap;
2525
import java.util.Map;
26-
import java.util.concurrent.ConcurrentHashMap;
2726
import java.util.function.Function;
2827

2928
import javax.crypto.spec.SecretKeySpec;
@@ -58,7 +57,6 @@
5857
* @author Joe Grandja
5958
* @author Rafael Dominguez
6059
* @author Mark Heckler
61-
* @author Ivan Golovko
6260
* @since 5.2
6361
* @see JwtDecoderFactory
6462
* @see ClientRegistration
@@ -79,8 +77,6 @@ public final class OidcIdTokenDecoderFactory implements JwtDecoderFactory<Client
7977

8078
private static final ClaimTypeConverter DEFAULT_CLAIM_TYPE_CONVERTER = createDefaultClaimTypeConverter();
8179

82-
private final Map<String, JwtDecoder> jwtDecoders;
83-
8480
private Function<ClientRegistration, OAuth2TokenValidator<Jwt>> jwtValidatorFactory = new DefaultOidcIdTokenValidatorFactory();
8581

8682
private Function<ClientRegistration, JwsAlgorithm> jwsAlgorithmResolver = (
@@ -89,19 +85,6 @@ public final class OidcIdTokenDecoderFactory implements JwtDecoderFactory<Client
8985
private Function<ClientRegistration, Converter<Map<String, Object>, Map<String, Object>>> claimTypeConverterFactory = (
9086
clientRegistration) -> DEFAULT_CLAIM_TYPE_CONVERTER;
9187

92-
public OidcIdTokenDecoderFactory() {
93-
this(true);
94-
}
95-
96-
public OidcIdTokenDecoderFactory(boolean withCache) {
97-
if (withCache) {
98-
this.jwtDecoders = new ConcurrentHashMap<>();
99-
}
100-
else {
101-
this.jwtDecoders = null;
102-
}
103-
}
104-
10588
/**
10689
* Returns the default {@link Converter}'s used for type conversion of claim values
10790
* for an {@link OidcIdToken}.
@@ -149,16 +132,7 @@ public static ClaimTypeConverter createDefaultClaimTypeConverter() {
149132
@Override
150133
public JwtDecoder createDecoder(ClientRegistration clientRegistration) {
151134
Assert.notNull(clientRegistration, "clientRegistration cannot be null");
152-
if (this.jwtDecoders != null) {
153-
return this.jwtDecoders.computeIfAbsent(clientRegistration.getRegistrationId(),
154-
(key) -> createFreshDecoder(clientRegistration));
155-
}
156-
else {
157-
return createFreshDecoder(clientRegistration);
158-
}
159-
}
160135

161-
private JwtDecoder createFreshDecoder(ClientRegistration clientRegistration) {
162136
NimbusJwtDecoder jwtDecoder = buildDecoder(clientRegistration);
163137
jwtDecoder.setJwtValidator(this.jwtValidatorFactory.apply(clientRegistration));
164138
Converter<Map<String, Object>, Map<String, Object>> claimTypeConverter = this.claimTypeConverterFactory

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

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.Collections;
2424
import java.util.HashMap;
2525
import java.util.Map;
26-
import java.util.concurrent.ConcurrentHashMap;
2726
import java.util.function.Function;
2827

2928
import javax.crypto.spec.SecretKeySpec;
@@ -59,7 +58,6 @@
5958
* @author Rafael Dominguez
6059
* @author Mark Heckler
6160
* @author Ubaid ur Rehman
62-
* @author Ivan Golovko
6361
* @since 5.2
6462
* @see ReactiveJwtDecoderFactory
6563
* @see ClientRegistration
@@ -81,8 +79,6 @@ public final class ReactiveOidcIdTokenDecoderFactory implements ReactiveJwtDecod
8179
private static final ClaimTypeConverter DEFAULT_CLAIM_TYPE_CONVERTER = new ClaimTypeConverter(
8280
createDefaultClaimTypeConverters());
8381

84-
private final Map<String, ReactiveJwtDecoder> jwtDecoders;
85-
8682
private Function<ClientRegistration, OAuth2TokenValidator<Jwt>> jwtValidatorFactory = new DefaultOidcIdTokenValidatorFactory();
8783

8884
private Function<ClientRegistration, JwsAlgorithm> jwsAlgorithmResolver = (
@@ -91,19 +87,6 @@ public final class ReactiveOidcIdTokenDecoderFactory implements ReactiveJwtDecod
9187
private Function<ClientRegistration, Converter<Map<String, Object>, Map<String, Object>>> claimTypeConverterFactory = (
9288
clientRegistration) -> DEFAULT_CLAIM_TYPE_CONVERTER;
9389

94-
public ReactiveOidcIdTokenDecoderFactory() {
95-
this(true);
96-
}
97-
98-
public ReactiveOidcIdTokenDecoderFactory(boolean withCache) {
99-
if (withCache) {
100-
this.jwtDecoders = new ConcurrentHashMap<>();
101-
}
102-
else {
103-
this.jwtDecoders = null;
104-
}
105-
}
106-
10790
/**
10891
* Returns the default {@link Converter}'s used for type conversion of claim values
10992
* for an {@link OidcIdToken}.
@@ -140,16 +123,6 @@ public ReactiveOidcIdTokenDecoderFactory(boolean withCache) {
140123
@Override
141124
public ReactiveJwtDecoder createDecoder(ClientRegistration clientRegistration) {
142125
Assert.notNull(clientRegistration, "clientRegistration cannot be null");
143-
if (this.jwtDecoders != null) {
144-
return this.jwtDecoders.computeIfAbsent(clientRegistration.getRegistrationId(),
145-
(key) -> createFreshDecoder(clientRegistration));
146-
}
147-
else {
148-
return createFreshDecoder(clientRegistration);
149-
}
150-
}
151-
152-
private ReactiveJwtDecoder createFreshDecoder(ClientRegistration clientRegistration) {
153126
NimbusReactiveJwtDecoder jwtDecoder = buildDecoder(clientRegistration);
154127
jwtDecoder.setJwtValidator(this.jwtValidatorFactory.apply(clientRegistration));
155128
Converter<Map<String, Object>, Map<String, Object>> claimTypeConverter = this.claimTypeConverterFactory

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/oidc/authentication/OidcIdTokenDecoderFactoryTests.java

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -179,17 +179,9 @@ public void createDecoderWhenCustomClaimTypeConverterFactorySetThenApplied() {
179179
verify(customClaimTypeConverterFactory).apply(same(clientRegistration));
180180
}
181181

182-
@Test
183-
public void createDecoderTwiceWithCaching() {
184-
ClientRegistration clientRegistration = this.registration.build();
185-
JwtDecoder decoder1 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
186-
JwtDecoder decoder2 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
187-
assertThat(decoder1).isSameAs(decoder2);
188-
}
189-
190182
@Test
191183
public void createDecoderTwiceWithoutCaching() {
192-
this.idTokenDecoderFactory = new OidcIdTokenDecoderFactory(false);
184+
this.idTokenDecoderFactory = new OidcIdTokenDecoderFactory();
193185
ClientRegistration clientRegistration = this.registration.build();
194186
JwtDecoder decoder1 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
195187
JwtDecoder decoder2 = this.idTokenDecoderFactory.createDecoder(clientRegistration);

oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/oidc/authentication/ReactiveOidcIdTokenDecoderFactoryTests.java

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -180,16 +180,8 @@ public void createDecoderWhenCustomClaimTypeConverterFactorySetThenApplied() {
180180
}
181181

182182
@Test
183-
public void createDecoderTwiceWithCaching() {
184-
ClientRegistration clientRegistration = this.registration.build();
185-
ReactiveJwtDecoder decoder1 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
186-
ReactiveJwtDecoder decoder2 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
187-
assertThat(decoder1).isSameAs(decoder2);
188-
}
189-
190-
@Test
191-
public void createDecoderTwiceWithoutCaching() {
192-
this.idTokenDecoderFactory = new ReactiveOidcIdTokenDecoderFactory(false);
183+
public void createDecoderTwice() {
184+
this.idTokenDecoderFactory = new ReactiveOidcIdTokenDecoderFactory();
193185
ClientRegistration clientRegistration = this.registration.build();
194186
ReactiveJwtDecoder decoder1 = this.idTokenDecoderFactory.createDecoder(clientRegistration);
195187
ReactiveJwtDecoder decoder2 = this.idTokenDecoderFactory.createDecoder(clientRegistration);

0 commit comments

Comments
 (0)