Skip to content

Commit 0ecffb0

Browse files
committed
Multi-tenancy Sample AuthenticationManagers
Fixes gh-7272
1 parent efe8205 commit 0ecffb0

File tree

3 files changed

+22
-32
lines changed

3 files changed

+22
-32
lines changed

samples/boot/oauth2resourceserver-multitenancy/README.adoc

+8-21
Original file line numberDiff line numberDiff line change
@@ -128,33 +128,20 @@ _In order to use this sample, your Authorization Server must support JWTs that e
128128
To change the sample to point at your Authorization Server, simply find these properties in the `application.yml`:
129129

130130
```yaml
131-
spring:
132-
security:
133-
oauth2:
134-
resourceserver:
135-
jwt:
136-
jwk-set-uri: ${mockwebserver.url}/.well-known/jwks.json
137-
opaque:
138-
introspection-uri: ${mockwebserver.url}/introspect
139-
introspection-client-id: client
140-
introspection-client-secret: secret
141-
131+
tenantOne.jwk-set-uri: ${mockwebserver.url}/.well-known/jwks.json
132+
tenantTwo.introspection-uri: ${mockwebserver.url}/introspect
133+
tenantTwo.introspection-client-id: client
134+
tenantTwo.introspection-client-secret: secret
142135
```
143136

144137
And change the properties to your Authorization Server's JWK set endpoint and
145138
introspection endpoint, including its client id and secret
146139

147140
```yaml
148-
spring:
149-
security:
150-
oauth2:
151-
resourceserver:
152-
jwt:
153-
jwk-set-uri: https://dev-123456.oktapreview.com/oauth2/default/v1/keys
154-
opaque:
155-
introspection-uri: https://dev-123456.oktapreview.com/oauth2/default/v1/introspect
156-
introspection-client-id: client
157-
introspection-client-secret: secret
141+
tenantOne.jwk-set-uri: https://dev-123456.oktapreview.com/oauth2/default/v1/keys
142+
tenantTwo.introspection-uri: https://dev-123456.oktapreview.com/oauth2/default/v1/introspect
143+
tenantTwo.introspection-client-id: client
144+
tenantTwo.introspection-client-secret: secret
158145
```
159146

160147
And then you can run the app the same as before:

samples/boot/oauth2resourceserver-multitenancy/src/main/java/sample/OAuth2ResourceServerSecurityConfiguration.java

+10-3
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,18 @@
4040
@EnableWebSecurity
4141
public class OAuth2ResourceServerSecurityConfiguration extends WebSecurityConfigurerAdapter {
4242

43-
@Value("${spring.security.oauth2.resourceserver.jwt.jwk-set-uri}")
43+
@Value("${tenantOne.jwk-set-uri}")
4444
String jwkSetUri;
4545

46-
@Value("${spring.security.oauth2.resourceserver.opaque.introspection-uri}")
46+
@Value("${tenantTwo.introspection-uri}")
4747
String introspectionUri;
4848

49+
@Value("${tenantTwo.introspection-client-id}")
50+
String introspectionClientId;
51+
52+
@Value("${tenantTwo.introspection-client-secret}")
53+
String introspectionClientSecret;
54+
4955
@Override
5056
protected void configure(HttpSecurity http) throws Exception {
5157
// @formatter:off
@@ -83,7 +89,8 @@ AuthenticationManager jwt() {
8389

8490
AuthenticationManager opaque() {
8591
OpaqueTokenIntrospector introspectionClient =
86-
new NimbusOpaqueTokenIntrospector(this.introspectionUri, "client", "secret");
92+
new NimbusOpaqueTokenIntrospector(this.introspectionUri,
93+
this.introspectionClientId, this.introspectionClientSecret);
8794
return new OAuth2IntrospectionAuthenticationProvider(introspectionClient)::authenticate;
8895
}
8996
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
spring:
2-
security:
3-
oauth2:
4-
resourceserver:
5-
jwt:
6-
jwk-set-uri: ${mockwebserver.url}/.well-known/jwks.json
7-
opaque:
8-
introspection-uri: ${mockwebserver.url}/introspect
1+
tenantOne.jwk-set-uri: ${mockwebserver.url}/.well-known/jwks.json
2+
tenantTwo.introspection-uri: ${mockwebserver.url}/introspect
3+
tenantTwo.introspection-client-id: client
4+
tenantTwo.introspection-client-secret: secret

0 commit comments

Comments
 (0)