|
@@ -65,7 +65,7 @@ public class JwtIssuerAuthenticationManagerResolverTests {
|
|
private String noIssuer = jwt("sub", "sub");
|
|
private String noIssuer = jwt("sub", "sub");
|
|
|
|
|
|
@Test
|
|
@Test
|
|
- public void resolveWhenUsingTrustedIssuerThenReturnsAuthenticationManager() throws Exception {
|
|
|
|
|
|
+ public void resolveWhenUsingFromTrustedIssuersThenReturnsAuthenticationManager() throws Exception {
|
|
try (MockWebServer server = new MockWebServer()) {
|
|
try (MockWebServer server = new MockWebServer()) {
|
|
server.start();
|
|
server.start();
|
|
String issuer = server.url("").toString();
|
|
String issuer = server.url("").toString();
|
|
@@ -73,7 +73,7 @@ public class JwtIssuerAuthenticationManagerResolverTests {
|
|
server.enqueue(new MockResponse().setResponseCode(200)
|
|
server.enqueue(new MockResponse().setResponseCode(200)
|
|
.setHeader("Content-Type", "application/json")
|
|
.setHeader("Content-Type", "application/json")
|
|
.setBody(String.format(DEFAULT_RESPONSE_TEMPLATE, issuer, issuer)
|
|
.setBody(String.format(DEFAULT_RESPONSE_TEMPLATE, issuer, issuer)
|
|
- ));
|
|
|
|
|
|
+ ));
|
|
server.enqueue(new MockResponse().setResponseCode(200)
|
|
server.enqueue(new MockResponse().setResponseCode(200)
|
|
.setHeader("Content-Type", "application/json")
|
|
.setHeader("Content-Type", "application/json")
|
|
.setBody(JWK_SET)
|
|
.setBody(JWK_SET)
|
|
@@ -96,6 +96,38 @@ public class JwtIssuerAuthenticationManagerResolverTests {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ @Test
|
|
|
|
+ public void resolveWhenUsingFromTrustedIssuersPredicateThenReturnsAuthenticationManager() throws Exception {
|
|
|
|
+ try (MockWebServer server = new MockWebServer()) {
|
|
|
|
+ server.start();
|
|
|
|
+ String issuer = server.url("").toString();
|
|
|
|
+ // @formatter:off
|
|
|
|
+ server.enqueue(new MockResponse().setResponseCode(200)
|
|
|
|
+ .setHeader("Content-Type", "application/json")
|
|
|
|
+ .setBody(String.format(DEFAULT_RESPONSE_TEMPLATE, issuer, issuer)
|
|
|
|
+ ));
|
|
|
|
+ server.enqueue(new MockResponse().setResponseCode(200)
|
|
|
|
+ .setHeader("Content-Type", "application/json")
|
|
|
|
+ .setBody(JWK_SET)
|
|
|
|
+ );
|
|
|
|
+ server.enqueue(new MockResponse().setResponseCode(200)
|
|
|
|
+ .setHeader("Content-Type", "application/json")
|
|
|
|
+ .setBody(JWK_SET)
|
|
|
|
+ );
|
|
|
|
+ // @formatter:on
|
|
|
|
+ JWSObject jws = new JWSObject(new JWSHeader(JWSAlgorithm.RS256),
|
|
|
|
+ new Payload(new JSONObject(Collections.singletonMap(JwtClaimNames.ISS, issuer))));
|
|
|
|
+ jws.sign(new RSASSASigner(TestKeys.DEFAULT_PRIVATE_KEY));
|
|
|
|
+ JwtIssuerAuthenticationManagerResolver authenticationManagerResolver = JwtIssuerAuthenticationManagerResolver
|
|
|
|
+ .fromTrustedIssuers(issuer::equals);
|
|
|
|
+ Authentication token = withBearerToken(jws.serialize());
|
|
|
|
+ AuthenticationManager authenticationManager = authenticationManagerResolver.resolve(null);
|
|
|
|
+ assertThat(authenticationManager).isNotNull();
|
|
|
|
+ Authentication authentication = authenticationManager.authenticate(token);
|
|
|
|
+ assertThat(authentication.isAuthenticated()).isTrue();
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
@Test
|
|
@Test
|
|
public void resolveWhednUsingTrustedIssuerThenReturnsAuthenticationManager() throws Exception {
|
|
public void resolveWhednUsingTrustedIssuerThenReturnsAuthenticationManager() throws Exception {
|
|
try (MockWebServer server = new MockWebServer()) {
|
|
try (MockWebServer server = new MockWebServer()) {
|
|
@@ -230,7 +262,7 @@ public class JwtIssuerAuthenticationManagerResolverTests {
|
|
}
|
|
}
|
|
|
|
|
|
@Test
|
|
@Test
|
|
- public void constructorWhenNullOrEmptyIssuersThenException() {
|
|
|
|
|
|
+ public void factoryWhenNullOrEmptyIssuersThenException() {
|
|
assertThatIllegalArgumentException()
|
|
assertThatIllegalArgumentException()
|
|
.isThrownBy(() -> JwtIssuerAuthenticationManagerResolver.fromTrustedIssuers((Predicate<String>) null));
|
|
.isThrownBy(() -> JwtIssuerAuthenticationManagerResolver.fromTrustedIssuers((Predicate<String>) null));
|
|
assertThatIllegalArgumentException()
|
|
assertThatIllegalArgumentException()
|