Skip to content

Commit 4ed197e

Browse files
committed
Rename OAuth2TokenIntrospectionClient
Renamed to OpaqueTokenIntrospector Fixes gh-7245
1 parent cfef52f commit 4ed197e

File tree

14 files changed

+147
-146
lines changed

14 files changed

+147
-146
lines changed

config/src/main/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurer.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,8 @@
3838
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter;
3939
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationProvider;
4040
import org.springframework.security.oauth2.server.resource.authentication.OAuth2IntrospectionAuthenticationProvider;
41-
import org.springframework.security.oauth2.server.resource.introspection.NimbusOAuth2TokenIntrospectionClient;
42-
import org.springframework.security.oauth2.server.resource.introspection.OAuth2TokenIntrospectionClient;
41+
import org.springframework.security.oauth2.server.resource.introspection.NimbusOpaqueTokenIntrospector;
42+
import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
4343
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationEntryPoint;
4444
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationFilter;
4545
import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver;
@@ -339,7 +339,7 @@ public class OpaqueTokenConfigurer {
339339
private String introspectionUri;
340340
private String clientId;
341341
private String clientSecret;
342-
private Supplier<OAuth2TokenIntrospectionClient> introspectionClient;
342+
private Supplier<OpaqueTokenIntrospector> introspector;
343343

344344
OpaqueTokenConfigurer(ApplicationContext context) {
345345
this.context = context;
@@ -354,8 +354,8 @@ public OpaqueTokenConfigurer authenticationManager(AuthenticationManager authent
354354
public OpaqueTokenConfigurer introspectionUri(String introspectionUri) {
355355
Assert.notNull(introspectionUri, "introspectionUri cannot be null");
356356
this.introspectionUri = introspectionUri;
357-
this.introspectionClient = () ->
358-
new NimbusOAuth2TokenIntrospectionClient(this.introspectionUri, this.clientId, this.clientSecret);
357+
this.introspector = () ->
358+
new NimbusOpaqueTokenIntrospector(this.introspectionUri, this.clientId, this.clientSecret);
359359
return this;
360360
}
361361

@@ -364,32 +364,32 @@ public OpaqueTokenConfigurer introspectionClientCredentials(String clientId, Str
364364
Assert.notNull(clientSecret, "clientSecret cannot be null");
365365
this.clientId = clientId;
366366
this.clientSecret = clientSecret;
367-
this.introspectionClient = () ->
368-
new NimbusOAuth2TokenIntrospectionClient(this.introspectionUri, this.clientId, this.clientSecret);
367+
this.introspector = () ->
368+
new NimbusOpaqueTokenIntrospector(this.introspectionUri, this.clientId, this.clientSecret);
369369
return this;
370370
}
371371

372-
public OpaqueTokenConfigurer introspectionClient(OAuth2TokenIntrospectionClient introspectionClient) {
373-
Assert.notNull(introspectionClient, "introspectionClient cannot be null");
374-
this.introspectionClient = () -> introspectionClient;
372+
public OpaqueTokenConfigurer introspector(OpaqueTokenIntrospector introspector) {
373+
Assert.notNull(introspector, "introspector cannot be null");
374+
this.introspector = () -> introspector;
375375
return this;
376376
}
377377

378-
OAuth2TokenIntrospectionClient getIntrospectionClient() {
379-
if (this.introspectionClient != null) {
380-
return this.introspectionClient.get();
378+
OpaqueTokenIntrospector getIntrospector() {
379+
if (this.introspector != null) {
380+
return this.introspector.get();
381381
}
382-
return this.context.getBean(OAuth2TokenIntrospectionClient.class);
382+
return this.context.getBean(OpaqueTokenIntrospector.class);
383383
}
384384

385385
AuthenticationManager getAuthenticationManager(H http) {
386386
if (this.authenticationManager != null) {
387387
return this.authenticationManager;
388388
}
389389

390-
OAuth2TokenIntrospectionClient introspectionClient = getIntrospectionClient();
390+
OpaqueTokenIntrospector introspector = getIntrospector();
391391
OAuth2IntrospectionAuthenticationProvider provider =
392-
new OAuth2IntrospectionAuthenticationProvider(introspectionClient);
392+
new OAuth2IntrospectionAuthenticationProvider(introspector);
393393
http.authenticationProvider(provider);
394394

395395
return http.getSharedObject(AuthenticationManager.class);

config/src/main/java/org/springframework/security/config/web/server/ServerHttpSecurity.java

+16-16
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
import java.util.function.Function;
3333
import java.util.function.Supplier;
3434

35-
import org.springframework.security.config.Customizer;
3635
import reactor.core.publisher.Mono;
3736
import reactor.util.context.Context;
3837

@@ -53,6 +52,7 @@
5352
import org.springframework.security.authorization.AuthorityReactiveAuthorizationManager;
5453
import org.springframework.security.authorization.AuthorizationDecision;
5554
import org.springframework.security.authorization.ReactiveAuthorizationManager;
55+
import org.springframework.security.config.Customizer;
5656
import org.springframework.security.core.Authentication;
5757
import org.springframework.security.core.GrantedAuthority;
5858
import org.springframework.security.core.authority.AuthorityUtils;
@@ -90,8 +90,8 @@
9090
import org.springframework.security.oauth2.server.resource.authentication.JwtReactiveAuthenticationManager;
9191
import org.springframework.security.oauth2.server.resource.authentication.OAuth2IntrospectionReactiveAuthenticationManager;
9292
import org.springframework.security.oauth2.server.resource.authentication.ReactiveJwtAuthenticationConverterAdapter;
93-
import org.springframework.security.oauth2.server.resource.introspection.NimbusReactiveOAuth2TokenIntrospectionClient;
94-
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOAuth2TokenIntrospectionClient;
93+
import org.springframework.security.oauth2.server.resource.introspection.NimbusReactiveOpaqueTokenIntrospector;
94+
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOpaqueTokenIntrospector;
9595
import org.springframework.security.oauth2.server.resource.web.access.server.BearerTokenServerAccessDeniedHandler;
9696
import org.springframework.security.oauth2.server.resource.web.server.BearerTokenServerAuthenticationEntryPoint;
9797
import org.springframework.security.oauth2.server.resource.web.server.ServerBearerTokenAuthenticationConverter;
@@ -1820,7 +1820,7 @@ public class OpaqueTokenSpec {
18201820
private String introspectionUri;
18211821
private String clientId;
18221822
private String clientSecret;
1823-
private Supplier<ReactiveOAuth2TokenIntrospectionClient> introspectionClient;
1823+
private Supplier<ReactiveOpaqueTokenIntrospector> introspector;
18241824

18251825
/**
18261826
* Configures the URI of the Introspection endpoint
@@ -1830,8 +1830,8 @@ public class OpaqueTokenSpec {
18301830
public OpaqueTokenSpec introspectionUri(String introspectionUri) {
18311831
Assert.hasText(introspectionUri, "introspectionUri cannot be empty");
18321832
this.introspectionUri = introspectionUri;
1833-
this.introspectionClient = () ->
1834-
new NimbusReactiveOAuth2TokenIntrospectionClient(
1833+
this.introspector = () ->
1834+
new NimbusReactiveOpaqueTokenIntrospector(
18351835
this.introspectionUri, this.clientId, this.clientSecret);
18361836
return this;
18371837
}
@@ -1847,15 +1847,15 @@ public OpaqueTokenSpec introspectionClientCredentials(String clientId, String cl
18471847
Assert.notNull(clientSecret, "clientSecret cannot be null");
18481848
this.clientId = clientId;
18491849
this.clientSecret = clientSecret;
1850-
this.introspectionClient = () ->
1851-
new NimbusReactiveOAuth2TokenIntrospectionClient(
1850+
this.introspector = () ->
1851+
new NimbusReactiveOpaqueTokenIntrospector(
18521852
this.introspectionUri, this.clientId, this.clientSecret);
18531853
return this;
18541854
}
18551855

1856-
public OpaqueTokenSpec introspectionClient(ReactiveOAuth2TokenIntrospectionClient introspectionClient) {
1857-
Assert.notNull(introspectionClient, "introspectionClient cannot be null");
1858-
this.introspectionClient = () -> introspectionClient;
1856+
public OpaqueTokenSpec introspector(ReactiveOpaqueTokenIntrospector introspector) {
1857+
Assert.notNull(introspector, "introspector cannot be null");
1858+
this.introspector = () -> introspector;
18591859
return this;
18601860
}
18611861

@@ -1868,14 +1868,14 @@ public OAuth2ResourceServerSpec and() {
18681868
}
18691869

18701870
protected ReactiveAuthenticationManager getAuthenticationManager() {
1871-
return new OAuth2IntrospectionReactiveAuthenticationManager(getIntrospectionClient());
1871+
return new OAuth2IntrospectionReactiveAuthenticationManager(getIntrospector());
18721872
}
18731873

1874-
protected ReactiveOAuth2TokenIntrospectionClient getIntrospectionClient() {
1875-
if (this.introspectionClient != null) {
1876-
return this.introspectionClient.get();
1874+
protected ReactiveOpaqueTokenIntrospector getIntrospector() {
1875+
if (this.introspector != null) {
1876+
return this.introspector.get();
18771877
}
1878-
return getBean(ReactiveOAuth2TokenIntrospectionClient.class);
1878+
return getBean(ReactiveOpaqueTokenIntrospector.class);
18791879
}
18801880

18811881
protected void configure(ServerHttpSecurity http) {

config/src/test/java/org/springframework/security/config/annotation/web/configurers/oauth2/server/resource/OAuth2ResourceServerConfigurerTests.java

+14-14
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,8 @@
9292
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationConverter;
9393
import org.springframework.security.oauth2.server.resource.authentication.JwtAuthenticationToken;
9494
import org.springframework.security.oauth2.server.resource.authentication.OAuth2IntrospectionAuthenticationToken;
95-
import org.springframework.security.oauth2.server.resource.introspection.NimbusOAuth2TokenIntrospectionClient;
96-
import org.springframework.security.oauth2.server.resource.introspection.OAuth2TokenIntrospectionClient;
95+
import org.springframework.security.oauth2.server.resource.introspection.NimbusOpaqueTokenIntrospector;
96+
import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
9797
import org.springframework.security.oauth2.server.resource.web.BearerTokenAuthenticationEntryPoint;
9898
import org.springframework.security.oauth2.server.resource.web.BearerTokenResolver;
9999
import org.springframework.security.oauth2.server.resource.web.DefaultBearerTokenResolver;
@@ -1182,38 +1182,38 @@ public void getIntrospectionClientWhenConfiguredWithClientAndIntrospectionUriThe
11821182
OAuth2ResourceServerConfigurer.OpaqueTokenConfigurer opaqueTokenConfigurer =
11831183
new OAuth2ResourceServerConfigurer(context).opaqueToken();
11841184

1185-
OAuth2TokenIntrospectionClient client = mock(OAuth2TokenIntrospectionClient.class);
1185+
OpaqueTokenIntrospector client = mock(OpaqueTokenIntrospector.class);
11861186

11871187
opaqueTokenConfigurer.introspectionUri(INTROSPECTION_URI);
11881188
opaqueTokenConfigurer.introspectionClientCredentials(CLIENT_ID, CLIENT_SECRET);
1189-
opaqueTokenConfigurer.introspectionClient(client);
1189+
opaqueTokenConfigurer.introspector(client);
11901190

1191-
assertThat(opaqueTokenConfigurer.getIntrospectionClient()).isEqualTo(client);
1191+
assertThat(opaqueTokenConfigurer.getIntrospector()).isEqualTo(client);
11921192

11931193
opaqueTokenConfigurer =
11941194
new OAuth2ResourceServerConfigurer(context).opaqueToken();
11951195

1196-
opaqueTokenConfigurer.introspectionClient(client);
1196+
opaqueTokenConfigurer.introspector(client);
11971197
opaqueTokenConfigurer.introspectionUri(INTROSPECTION_URI);
11981198
opaqueTokenConfigurer.introspectionClientCredentials(CLIENT_ID, CLIENT_SECRET);
11991199

1200-
assertThat(opaqueTokenConfigurer.getIntrospectionClient())
1201-
.isInstanceOf(NimbusOAuth2TokenIntrospectionClient.class);
1200+
assertThat(opaqueTokenConfigurer.getIntrospector())
1201+
.isInstanceOf(NimbusOpaqueTokenIntrospector.class);
12021202

12031203
}
12041204

12051205
@Test
12061206
public void getIntrospectionClientWhenDslAndBeanWiredThenDslTakesPrecedence() {
12071207
GenericApplicationContext context = new GenericApplicationContext();
1208-
registerMockBean(context, "introspectionClientOne", OAuth2TokenIntrospectionClient.class);
1209-
registerMockBean(context, "introspectionClientTwo", OAuth2TokenIntrospectionClient.class);
1208+
registerMockBean(context, "introspectionClientOne", OpaqueTokenIntrospector.class);
1209+
registerMockBean(context, "introspectionClientTwo", OpaqueTokenIntrospector.class);
12101210

12111211
OAuth2ResourceServerConfigurer.OpaqueTokenConfigurer opaqueToken =
12121212
new OAuth2ResourceServerConfigurer(context).opaqueToken();
12131213
opaqueToken.introspectionUri(INTROSPECTION_URI);
12141214
opaqueToken.introspectionClientCredentials(CLIENT_ID, CLIENT_SECRET);
12151215

1216-
assertThat(opaqueToken.getIntrospectionClient()).isNotNull();
1216+
assertThat(opaqueToken.getIntrospector()).isNotNull();
12171217
}
12181218

12191219
// -- In combination with other authentication providers
@@ -1327,7 +1327,7 @@ public void getAuthenticationManagerWhenConfiguredAuthenticationManagerThenTakes
13271327
oauth2ResourceServer
13281328
.opaqueToken()
13291329
.authenticationManager(authenticationManager)
1330-
.introspectionClient(mock(OAuth2TokenIntrospectionClient.class));
1330+
.introspector(mock(OpaqueTokenIntrospector.class));
13311331
assertThat(oauth2ResourceServer.getAuthenticationManager(http)).isSameAs(authenticationManager);
13321332
verify(http, never()).authenticationProvider(any(AuthenticationProvider.class));
13331333
}
@@ -2164,8 +2164,8 @@ NimbusJwtDecoder jwtDecoder() {
21642164
}
21652165

21662166
@Bean
2167-
NimbusOAuth2TokenIntrospectionClient tokenIntrospectionClient() {
2168-
return new NimbusOAuth2TokenIntrospectionClient("https://example.org/introspect", this.rest);
2167+
NimbusOpaqueTokenIntrospector tokenIntrospectionClient() {
2168+
return new NimbusOpaqueTokenIntrospector("https://example.org/introspect", this.rest);
21692169
}
21702170
}
21712171

oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/OAuth2IntrospectionAuthenticationProvider.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import org.springframework.security.oauth2.core.OAuth2Error;
3535
import org.springframework.security.oauth2.core.OAuth2TokenAttributes;
3636
import org.springframework.security.oauth2.server.resource.introspection.OAuth2IntrospectionException;
37-
import org.springframework.security.oauth2.server.resource.introspection.OAuth2TokenIntrospectionClient;
37+
import org.springframework.security.oauth2.server.resource.introspection.OpaqueTokenIntrospector;
3838
import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
3939
import org.springframework.security.oauth2.server.resource.BearerTokenError;
4040
import org.springframework.util.Assert;
@@ -69,14 +69,14 @@ public final class OAuth2IntrospectionAuthenticationProvider implements Authenti
6969
private static final BearerTokenError DEFAULT_INVALID_TOKEN =
7070
invalidToken("An error occurred while attempting to introspect the token: Invalid token");
7171

72-
private OAuth2TokenIntrospectionClient introspectionClient;
72+
private OpaqueTokenIntrospector introspectionClient;
7373

7474
/**
7575
* Creates a {@code OAuth2IntrospectionAuthenticationProvider} with the provided parameters
7676
*
77-
* @param introspectionClient The {@link OAuth2TokenIntrospectionClient} to use
77+
* @param introspectionClient The {@link OpaqueTokenIntrospector} to use
7878
*/
79-
public OAuth2IntrospectionAuthenticationProvider(OAuth2TokenIntrospectionClient introspectionClient) {
79+
public OAuth2IntrospectionAuthenticationProvider(OpaqueTokenIntrospector introspectionClient) {
8080
Assert.notNull(introspectionClient, "introspectionClient cannot be null");
8181
this.introspectionClient = introspectionClient;
8282
}

oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/authentication/OAuth2IntrospectionReactiveAuthenticationManager.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
import org.springframework.security.oauth2.core.OAuth2AuthenticationException;
3636
import org.springframework.security.oauth2.core.OAuth2Error;
3737
import org.springframework.security.oauth2.server.resource.introspection.OAuth2IntrospectionException;
38-
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOAuth2TokenIntrospectionClient;
38+
import org.springframework.security.oauth2.server.resource.introspection.ReactiveOpaqueTokenIntrospector;
3939
import org.springframework.security.oauth2.server.resource.BearerTokenAuthenticationToken;
4040
import org.springframework.security.oauth2.server.resource.BearerTokenError;
4141
import org.springframework.util.Assert;
@@ -70,14 +70,14 @@ public class OAuth2IntrospectionReactiveAuthenticationManager implements Reactiv
7070
private static final BearerTokenError DEFAULT_INVALID_TOKEN =
7171
invalidToken("An error occurred while attempting to introspect the token: Invalid token");
7272

73-
private ReactiveOAuth2TokenIntrospectionClient introspectionClient;
73+
private ReactiveOpaqueTokenIntrospector introspectionClient;
7474

7575
/**
7676
* Creates a {@code OAuth2IntrospectionReactiveAuthenticationManager} with the provided parameters
7777
*
78-
* @param introspectionClient The {@link ReactiveOAuth2TokenIntrospectionClient} to use
78+
* @param introspectionClient The {@link ReactiveOpaqueTokenIntrospector} to use
7979
*/
80-
public OAuth2IntrospectionReactiveAuthenticationManager(ReactiveOAuth2TokenIntrospectionClient introspectionClient) {
80+
public OAuth2IntrospectionReactiveAuthenticationManager(ReactiveOpaqueTokenIntrospector introspectionClient) {
8181
Assert.notNull(introspectionClient, "introspectionClient cannot be null");
8282
this.introspectionClient = introspectionClient;
8383
}
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,15 @@
5252
import static org.springframework.security.oauth2.server.resource.introspection.OAuth2IntrospectionClaimNames.SCOPE;
5353

5454
/**
55-
* A Nimbus implementation of {@link OAuth2TokenIntrospectionClient}.
55+
* A Nimbus implementation of {@link OpaqueTokenIntrospector} that verifies and introspects
56+
* a token using the configured
57+
* <a href="https://tools.ietf.org/html/rfc7662" target="_blank">OAuth 2.0 Introspection Endpoint</a>.
5658
*
5759
* @author Josh Cummings
5860
* @author MD Sayem Ahmed
5961
* @since 5.2
6062
*/
61-
public class NimbusOAuth2TokenIntrospectionClient implements OAuth2TokenIntrospectionClient {
63+
public class NimbusOpaqueTokenIntrospector implements OpaqueTokenIntrospector {
6264
private Converter<String, RequestEntity<?>> requestEntityConverter;
6365
private RestOperations restOperations;
6466

@@ -69,7 +71,7 @@ public class NimbusOAuth2TokenIntrospectionClient implements OAuth2TokenIntrospe
6971
* @param clientId The client id authorized to introspect
7072
* @param clientSecret The client's secret
7173
*/
72-
public NimbusOAuth2TokenIntrospectionClient(String introspectionUri, String clientId, String clientSecret) {
74+
public NimbusOpaqueTokenIntrospector(String introspectionUri, String clientId, String clientSecret) {
7375
Assert.notNull(introspectionUri, "introspectionUri cannot be null");
7476
Assert.notNull(clientId, "clientId cannot be null");
7577
Assert.notNull(clientSecret, "clientSecret cannot be null");
@@ -89,7 +91,7 @@ public NimbusOAuth2TokenIntrospectionClient(String introspectionUri, String clie
8991
* @param introspectionUri The introspection endpoint uri
9092
* @param restOperations The client for performing the introspection request
9193
*/
92-
public NimbusOAuth2TokenIntrospectionClient(String introspectionUri, RestOperations restOperations) {
94+
public NimbusOpaqueTokenIntrospector(String introspectionUri, RestOperations restOperations) {
9395
Assert.notNull(introspectionUri, "introspectionUri cannot be null");
9496
Assert.notNull(restOperations, "restOperations cannot be null");
9597

Original file line numberDiff line numberDiff line change
@@ -46,12 +46,14 @@
4646
import static org.springframework.security.oauth2.server.resource.introspection.OAuth2IntrospectionClaimNames.SCOPE;
4747

4848
/**
49-
* A Nimbus implementation of {@link ReactiveOAuth2TokenIntrospectionClient}
49+
* A Nimbus implementation of {@link ReactiveOpaqueTokenIntrospector} that verifies and introspects
50+
* a token using the configured
51+
* <a href="https://tools.ietf.org/html/rfc7662" target="_blank">OAuth 2.0 Introspection Endpoint</a>.
5052
*
5153
* @author Josh Cummings
5254
* @since 5.2
5355
*/
54-
public class NimbusReactiveOAuth2TokenIntrospectionClient implements ReactiveOAuth2TokenIntrospectionClient {
56+
public class NimbusReactiveOpaqueTokenIntrospector implements ReactiveOpaqueTokenIntrospector {
5557
private URI introspectionUri;
5658
private WebClient webClient;
5759

@@ -62,7 +64,7 @@ public class NimbusReactiveOAuth2TokenIntrospectionClient implements ReactiveOAu
6264
* @param clientId The client id authorized to introspect
6365
* @param clientSecret The client secret for the authorized client
6466
*/
65-
public NimbusReactiveOAuth2TokenIntrospectionClient(String introspectionUri, String clientId, String clientSecret) {
67+
public NimbusReactiveOpaqueTokenIntrospector(String introspectionUri, String clientId, String clientSecret) {
6668
Assert.hasText(introspectionUri, "introspectionUri cannot be empty");
6769
Assert.hasText(clientId, "clientId cannot be empty");
6870
Assert.notNull(clientSecret, "clientSecret cannot be null");
@@ -79,7 +81,7 @@ public NimbusReactiveOAuth2TokenIntrospectionClient(String introspectionUri, Str
7981
* @param introspectionUri The introspection endpoint uri
8082
* @param webClient The client for performing the introspection request
8183
*/
82-
public NimbusReactiveOAuth2TokenIntrospectionClient(String introspectionUri, WebClient webClient) {
84+
public NimbusReactiveOpaqueTokenIntrospector(String introspectionUri, WebClient webClient) {
8385
Assert.hasText(introspectionUri, "introspectionUri cannot be null");
8486
Assert.notNull(webClient, "webClient cannot be null");
8587

0 commit comments

Comments
 (0)