|
|
|
@ -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() |
|
|
|
|