Remove blank lines from all tests
Remove all blank lines from test code so that test methods are visually grouped together. This generally helps to make the test classes easer to scan, however, the "given" / "when" / "then" blocks used by some tests are now not as easy to discern. Issue gh-8945
This commit is contained in:
-1
@@ -135,7 +135,6 @@ public final class TestSaml2X509Credentials {
|
||||
}
|
||||
|
||||
private static X509Certificate spCertificate() {
|
||||
|
||||
return certificate(
|
||||
"-----BEGIN CERTIFICATE-----\n" + "MIICgTCCAeoCCQCuVzyqFgMSyDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMC\n"
|
||||
+ "VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEjAQBgNVBAcMCVZhbmNvdXZlcjEdMBsG\n"
|
||||
|
||||
-1
@@ -135,7 +135,6 @@ public final class TestSaml2X509Credentials {
|
||||
}
|
||||
|
||||
private static X509Certificate spCertificate() {
|
||||
|
||||
return certificate(
|
||||
"-----BEGIN CERTIFICATE-----\n" + "MIICgTCCAeoCCQCuVzyqFgMSyDANBgkqhkiG9w0BAQsFADCBhDELMAkGA1UEBhMC\n"
|
||||
+ "VVMxEzARBgNVBAgMCldhc2hpbmd0b24xEjAQBgNVBAcMCVZhbmNvdXZlcjEdMBsG\n"
|
||||
|
||||
-4
@@ -73,14 +73,10 @@ public class DefaultSaml2AuthenticatedPrincipalTests {
|
||||
public void getAttributeWhenDistinctValuesThenReturnsValues() {
|
||||
final Boolean registered = true;
|
||||
final Instant registeredDate = Instant.ofEpochMilli(DateTime.parse("1970-01-01T00:00:00Z").getMillis());
|
||||
|
||||
Map<String, List<Object>> attributes = new LinkedHashMap<>();
|
||||
attributes.put("registration", Arrays.asList(registered, registeredDate));
|
||||
|
||||
DefaultSaml2AuthenticatedPrincipal principal = new DefaultSaml2AuthenticatedPrincipal("user", attributes);
|
||||
|
||||
List<Object> registrationInfo = principal.getAttribute("registration");
|
||||
|
||||
assertThat(registrationInfo).isNotNull();
|
||||
assertThat((Boolean) registrationInfo.get(0)).isEqualTo(registered);
|
||||
assertThat((Instant) registrationInfo.get(1)).isEqualTo(registeredDate);
|
||||
|
||||
-18
@@ -97,7 +97,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
|
||||
@Test
|
||||
public void supportsWhenSaml2AuthenticationTokenThenReturnTrue() {
|
||||
|
||||
assertThat(this.provider.supports(Saml2AuthenticationToken.class))
|
||||
.withFailMessage(
|
||||
OpenSamlAuthenticationProvider.class + "should support " + Saml2AuthenticationToken.class)
|
||||
@@ -114,7 +113,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenUnknownDataClassThenThrowAuthenticationException() {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.MALFORMED_RESPONSE_DATA));
|
||||
|
||||
Assertion assertion = (Assertion) XMLObjectProviderRegistrySupport.getBuilderFactory()
|
||||
.getBuilder(Assertion.DEFAULT_ELEMENT_NAME).buildObject(Assertion.DEFAULT_ELEMENT_NAME);
|
||||
this.provider
|
||||
@@ -124,7 +122,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenXmlErrorThenThrowAuthenticationException() {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.MALFORMED_RESPONSE_DATA));
|
||||
|
||||
Saml2AuthenticationToken token = token("invalid xml",
|
||||
TestSaml2X509Credentials.relyingPartyVerifyingCredential());
|
||||
this.provider.authenticate(token);
|
||||
@@ -133,7 +130,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenInvalidDestinationThenThrowAuthenticationException() {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.INVALID_DESTINATION));
|
||||
|
||||
Response response = TestOpenSamlObjects.response(DESTINATION + "invalid", ASSERTING_PARTY_ENTITY_ID);
|
||||
response.getAssertions().add(TestOpenSamlObjects.assertion());
|
||||
TestOpenSamlObjects.signed(response, TestSaml2X509Credentials.assertingPartySigningCredential(),
|
||||
@@ -146,7 +142,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
public void authenticateWhenNoAssertionsPresentThenThrowAuthenticationException() {
|
||||
this.exception.expect(
|
||||
authenticationMatcher(Saml2ErrorCodes.MALFORMED_RESPONSE_DATA, "No assertions found in response."));
|
||||
|
||||
Saml2AuthenticationToken token = token(TestOpenSamlObjects.response(),
|
||||
TestSaml2X509Credentials.assertingPartySigningCredential());
|
||||
this.provider.authenticate(token);
|
||||
@@ -155,7 +150,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenInvalidSignatureOnAssertionThenThrowAuthenticationException() {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.INVALID_SIGNATURE));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
response.getAssertions().add(TestOpenSamlObjects.assertion());
|
||||
Saml2AuthenticationToken token = token(response, TestSaml2X509Credentials.relyingPartyVerifyingCredential());
|
||||
@@ -165,7 +159,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenOpenSAMLValidationErrorThenThrowAuthenticationException() throws Exception {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.INVALID_ASSERTION));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
Assertion assertion = TestOpenSamlObjects.assertion();
|
||||
assertion.getSubject().getSubjectConfirmations().get(0).getSubjectConfirmationData()
|
||||
@@ -180,7 +173,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenMissingSubjectThenThrowAuthenticationException() {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.SUBJECT_NOT_FOUND));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
Assertion assertion = TestOpenSamlObjects.assertion();
|
||||
assertion.setSubject(null);
|
||||
@@ -194,7 +186,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenUsernameMissingThenThrowAuthenticationException() throws Exception {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.SUBJECT_NOT_FOUND));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
Assertion assertion = TestOpenSamlObjects.assertion();
|
||||
assertion.getSubject().getNameID().setValue(null);
|
||||
@@ -230,7 +221,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
Saml2AuthenticationToken token = token(response, TestSaml2X509Credentials.relyingPartyVerifyingCredential());
|
||||
Authentication authentication = this.provider.authenticate(token);
|
||||
Saml2AuthenticatedPrincipal principal = (Saml2AuthenticatedPrincipal) authentication.getPrincipal();
|
||||
|
||||
Map<String, Object> expected = new LinkedHashMap<>();
|
||||
expected.put("email", Arrays.asList("john.doe@example.com", "doe.john@example.com"));
|
||||
expected.put("name", Collections.singletonList("John Doe"));
|
||||
@@ -239,7 +229,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
expected.put("registered", Collections.singletonList(true));
|
||||
Instant registeredDate = Instant.ofEpochMilli(DateTime.parse("1970-01-01T00:00:00Z").getMillis());
|
||||
expected.put("registeredDate", Collections.singletonList(registeredDate));
|
||||
|
||||
assertThat((String) principal.getFirstAttribute("name")).isEqualTo("John Doe");
|
||||
assertThat(principal.getAttributes()).isEqualTo(expected);
|
||||
}
|
||||
@@ -254,11 +243,9 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
RELYING_PARTY_ENTITY_ID);
|
||||
response.getAssertions().add(assertion);
|
||||
Saml2AuthenticationToken token = token(response, TestSaml2X509Credentials.relyingPartyVerifyingCredential());
|
||||
|
||||
Element attributeElement = element("<element>value</element>");
|
||||
Marshaller marshaller = mock(Marshaller.class);
|
||||
given(marshaller.marshall(any(XMLObject.class))).willReturn(attributeElement);
|
||||
|
||||
try {
|
||||
XMLObjectProviderRegistrySupport.getMarshallerFactory()
|
||||
.registerMarshaller(AttributeValue.DEFAULT_ELEMENT_NAME, marshaller);
|
||||
@@ -274,7 +261,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
@Test
|
||||
public void authenticateWhenEncryptedAssertionWithoutSignatureThenItFails() throws Exception {
|
||||
this.exception.expect(authenticationMatcher(Saml2ErrorCodes.INVALID_SIGNATURE));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
EncryptedAssertion encryptedAssertion = TestOpenSamlObjects.encrypted(TestOpenSamlObjects.assertion(),
|
||||
TestSaml2X509Credentials.assertingPartyEncryptingCredential());
|
||||
@@ -330,7 +316,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
public void authenticateWhenDecryptionKeysAreMissingThenThrowAuthenticationException() throws Exception {
|
||||
this.exception
|
||||
.expect(authenticationMatcher(Saml2ErrorCodes.DECRYPTION_ERROR, "Failed to decrypt EncryptedData"));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
EncryptedAssertion encryptedAssertion = TestOpenSamlObjects.encrypted(TestOpenSamlObjects.assertion(),
|
||||
TestSaml2X509Credentials.assertingPartyEncryptingCredential());
|
||||
@@ -344,7 +329,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
public void authenticateWhenDecryptionKeysAreWrongThenThrowAuthenticationException() throws Exception {
|
||||
this.exception
|
||||
.expect(authenticationMatcher(Saml2ErrorCodes.DECRYPTION_ERROR, "Failed to decrypt EncryptedData"));
|
||||
|
||||
Response response = TestOpenSamlObjects.response();
|
||||
EncryptedAssertion encryptedAssertion = TestOpenSamlObjects.encrypted(TestOpenSamlObjects.assertion(),
|
||||
TestSaml2X509Credentials.assertingPartyEncryptingCredential());
|
||||
@@ -365,7 +349,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
Saml2AuthenticationToken token = token(response, TestSaml2X509Credentials.relyingPartyVerifyingCredential(),
|
||||
TestSaml2X509Credentials.relyingPartyDecryptingCredential());
|
||||
Saml2Authentication authentication = (Saml2Authentication) this.provider.authenticate(token);
|
||||
|
||||
// the following code will throw an exception if authentication isn't serializable
|
||||
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(1024);
|
||||
ObjectOutputStream objectOutputStream = new ObjectOutputStream(byteStream);
|
||||
@@ -468,7 +451,6 @@ public class OpenSamlAuthenticationProviderTests {
|
||||
public void describeTo(Description desc) {
|
||||
String excepting = "Saml2AuthenticationException[code=" + code + "; description=" + description + "]";
|
||||
desc.appendText(excepting);
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
-3
@@ -103,7 +103,6 @@ public class OpenSamlAuthenticationRequestFactoryTests {
|
||||
|
||||
@Test
|
||||
public void createRedirectAuthenticationRequestWhenNotSignRequestThenNoSignatureIsPresent() {
|
||||
|
||||
this.context = this.contextBuilder.relayState("Relay State Value")
|
||||
.relyingPartyRegistration(
|
||||
RelyingPartyRegistration.withRelyingPartyRegistration(this.relyingPartyRegistration)
|
||||
@@ -173,7 +172,6 @@ public class OpenSamlAuthenticationRequestFactoryTests {
|
||||
given(authnRequestConsumerResolver.apply(this.context)).willReturn((authnRequest) -> {
|
||||
});
|
||||
this.factory.setAuthnRequestConsumerResolver(authnRequestConsumerResolver);
|
||||
|
||||
this.factory.createPostAuthenticationRequest(this.context);
|
||||
verify(authnRequestConsumerResolver).apply(this.context);
|
||||
}
|
||||
@@ -185,7 +183,6 @@ public class OpenSamlAuthenticationRequestFactoryTests {
|
||||
given(authnRequestConsumerResolver.apply(this.context)).willReturn((authnRequest) -> {
|
||||
});
|
||||
this.factory.setAuthnRequestConsumerResolver(authnRequestConsumerResolver);
|
||||
|
||||
this.factory.createRedirectAuthenticationRequest(this.context);
|
||||
verify(authnRequestConsumerResolver).apply(this.context);
|
||||
}
|
||||
|
||||
-22
@@ -85,7 +85,6 @@ final class TestOpenSamlObjects {
|
||||
static {
|
||||
OpenSamlInitializationService.initialize();
|
||||
}
|
||||
|
||||
private static String USERNAME = "test@saml.user";
|
||||
|
||||
private static String DESTINATION = "https://localhost/login/saml2/sso/idp-alias";
|
||||
@@ -128,7 +127,6 @@ final class TestOpenSamlObjects {
|
||||
assertion.setIssuer(issuer(issuerEntityId));
|
||||
assertion.setSubject(subject(username));
|
||||
assertion.setConditions(conditions());
|
||||
|
||||
SubjectConfirmation subjectConfirmation = subjectConfirmation();
|
||||
subjectConfirmation.setMethod(SubjectConfirmation.METHOD_BEARER);
|
||||
SubjectConfirmationData confirmationData = subjectConfirmationData(recipientEntityId);
|
||||
@@ -146,11 +144,9 @@ final class TestOpenSamlObjects {
|
||||
|
||||
static Subject subject(String principalName) {
|
||||
Subject subject = build(Subject.DEFAULT_ELEMENT_NAME);
|
||||
|
||||
if (principalName != null) {
|
||||
subject.setNameID(nameId(principalName));
|
||||
}
|
||||
|
||||
return subject;
|
||||
}
|
||||
|
||||
@@ -216,7 +212,6 @@ final class TestOpenSamlObjects {
|
||||
catch (MarshallingException | SignatureException | SecurityException ex) {
|
||||
throw new Saml2Exception(ex);
|
||||
}
|
||||
|
||||
return signable;
|
||||
}
|
||||
|
||||
@@ -234,7 +229,6 @@ final class TestOpenSamlObjects {
|
||||
catch (MarshallingException | SignatureException | SecurityException ex) {
|
||||
throw new Saml2Exception(ex);
|
||||
}
|
||||
|
||||
return signable;
|
||||
}
|
||||
|
||||
@@ -287,32 +281,25 @@ final class TestOpenSamlObjects {
|
||||
private static Encrypter getEncrypter(X509Certificate certificate) {
|
||||
String dataAlgorithm = XMLCipherParameters.AES_256;
|
||||
String keyAlgorithm = XMLCipherParameters.RSA_1_5;
|
||||
|
||||
BasicCredential dataCredential = new BasicCredential(SECRET_KEY);
|
||||
DataEncryptionParameters dataEncryptionParameters = new DataEncryptionParameters();
|
||||
dataEncryptionParameters.setEncryptionCredential(dataCredential);
|
||||
dataEncryptionParameters.setAlgorithm(dataAlgorithm);
|
||||
|
||||
Credential credential = CredentialSupport.getSimpleCredential(certificate, null);
|
||||
KeyEncryptionParameters keyEncryptionParameters = new KeyEncryptionParameters();
|
||||
keyEncryptionParameters.setEncryptionCredential(credential);
|
||||
keyEncryptionParameters.setAlgorithm(keyAlgorithm);
|
||||
|
||||
Encrypter encrypter = new Encrypter(dataEncryptionParameters, keyEncryptionParameters);
|
||||
Encrypter.KeyPlacement keyPlacement = Encrypter.KeyPlacement.valueOf("PEER");
|
||||
encrypter.setKeyPlacement(keyPlacement);
|
||||
|
||||
return encrypter;
|
||||
}
|
||||
|
||||
static List<AttributeStatement> attributeStatements() {
|
||||
List<AttributeStatement> attributeStatements = new ArrayList<>();
|
||||
|
||||
AttributeStatementBuilder attributeStatementBuilder = new AttributeStatementBuilder();
|
||||
AttributeBuilder attributeBuilder = new AttributeBuilder();
|
||||
|
||||
AttributeStatement attrStmt1 = attributeStatementBuilder.buildObject();
|
||||
|
||||
Attribute emailAttr = attributeBuilder.buildObject();
|
||||
emailAttr.setName("email");
|
||||
XSAny email1 = new XSAnyBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME);
|
||||
@@ -322,32 +309,26 @@ final class TestOpenSamlObjects {
|
||||
email2.setTextContent("doe.john@example.com");
|
||||
emailAttr.getAttributeValues().add(email2);
|
||||
attrStmt1.getAttributes().add(emailAttr);
|
||||
|
||||
Attribute nameAttr = attributeBuilder.buildObject();
|
||||
nameAttr.setName("name");
|
||||
XSString name = new XSStringBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSString.TYPE_NAME);
|
||||
name.setValue("John Doe");
|
||||
nameAttr.getAttributeValues().add(name);
|
||||
attrStmt1.getAttributes().add(nameAttr);
|
||||
|
||||
Attribute ageAttr = attributeBuilder.buildObject();
|
||||
ageAttr.setName("age");
|
||||
XSInteger age = new XSIntegerBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSInteger.TYPE_NAME);
|
||||
age.setValue(21);
|
||||
ageAttr.getAttributeValues().add(age);
|
||||
attrStmt1.getAttributes().add(ageAttr);
|
||||
|
||||
attributeStatements.add(attrStmt1);
|
||||
|
||||
AttributeStatement attrStmt2 = attributeStatementBuilder.buildObject();
|
||||
|
||||
Attribute websiteAttr = attributeBuilder.buildObject();
|
||||
websiteAttr.setName("website");
|
||||
XSURI uri = new XSURIBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME, XSURI.TYPE_NAME);
|
||||
uri.setValue("https://johndoe.com/");
|
||||
websiteAttr.getAttributeValues().add(uri);
|
||||
attrStmt2.getAttributes().add(websiteAttr);
|
||||
|
||||
Attribute registeredAttr = attributeBuilder.buildObject();
|
||||
registeredAttr.setName("registered");
|
||||
XSBoolean registered = new XSBooleanBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME,
|
||||
@@ -355,7 +336,6 @@ final class TestOpenSamlObjects {
|
||||
registered.setValue(new XSBooleanValue(true, false));
|
||||
registeredAttr.getAttributeValues().add(registered);
|
||||
attrStmt2.getAttributes().add(registeredAttr);
|
||||
|
||||
Attribute registeredDateAttr = attributeBuilder.buildObject();
|
||||
registeredDateAttr.setName("registeredDate");
|
||||
XSDateTime registeredDate = new XSDateTimeBuilder().buildObject(AttributeValue.DEFAULT_ELEMENT_NAME,
|
||||
@@ -363,9 +343,7 @@ final class TestOpenSamlObjects {
|
||||
registeredDate.setValue(DateTime.parse("1970-01-01T00:00:00Z"));
|
||||
registeredDateAttr.getAttributeValues().add(registeredDate);
|
||||
attrStmt2.getAttributes().add(registeredDateAttr);
|
||||
|
||||
attributeStatements.add(attrStmt2);
|
||||
|
||||
return attributeStatements;
|
||||
}
|
||||
|
||||
|
||||
-10
@@ -32,15 +32,10 @@ public class OpenSamlMetadataResolverTests {
|
||||
|
||||
@Test
|
||||
public void resolveWhenRelyingPartyThenMetadataMatches() {
|
||||
// given
|
||||
RelyingPartyRegistration relyingPartyRegistration = TestRelyingPartyRegistrations.full()
|
||||
.assertionConsumerServiceBinding(Saml2MessageBinding.REDIRECT).build();
|
||||
OpenSamlMetadataResolver openSamlMetadataResolver = new OpenSamlMetadataResolver();
|
||||
|
||||
// when
|
||||
String metadata = openSamlMetadataResolver.resolve(relyingPartyRegistration);
|
||||
|
||||
// then
|
||||
assertThat(metadata).contains("<EntityDescriptor").contains("entityID=\"rp-entity-id\"")
|
||||
.contains("WantAssertionsSigned=\"true\"").contains("<md:KeyDescriptor use=\"signing\">")
|
||||
.contains("<md:KeyDescriptor use=\"encryption\">")
|
||||
@@ -51,17 +46,12 @@ public class OpenSamlMetadataResolverTests {
|
||||
|
||||
@Test
|
||||
public void resolveWhenRelyingPartyNoCredentialsThenMetadataMatches() {
|
||||
// given
|
||||
RelyingPartyRegistration relyingPartyRegistration = TestRelyingPartyRegistrations.noCredentials()
|
||||
.assertingPartyDetails((party) -> party.verificationX509Credentials(
|
||||
(c) -> c.add(TestSaml2X509Credentials.relyingPartyVerifyingCredential())))
|
||||
.build();
|
||||
OpenSamlMetadataResolver openSamlMetadataResolver = new OpenSamlMetadataResolver();
|
||||
|
||||
// when
|
||||
String metadata = openSamlMetadataResolver.resolve(relyingPartyRegistration);
|
||||
|
||||
// then
|
||||
assertThat(metadata).contains("<EntityDescriptor").contains("entityID=\"rp-entity-id\"")
|
||||
.contains("WantAssertionsSigned=\"true\"").doesNotContain("<md:KeyDescriptor use=\"signing\">")
|
||||
.doesNotContain("<md:KeyDescriptor use=\"encryption\">")
|
||||
|
||||
-1
@@ -80,7 +80,6 @@ public class RelyingPartyRegistrationTests {
|
||||
.assertingPartyDetails((assertingParty) -> assertingParty.entityId("entity-id")
|
||||
.singleSignOnServiceLocation("location"))
|
||||
.credentials((c) -> c.add(TestSaml2X509Credentials.relyingPartyVerifyingCredential())).build();
|
||||
|
||||
assertThat(relyingPartyRegistration.getAssertionConsumerServiceBinding()).isEqualTo(Saml2MessageBinding.POST);
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -30,16 +30,13 @@ public final class TestRelyingPartyRegistrations {
|
||||
|
||||
public static RelyingPartyRegistration.Builder relyingPartyRegistration() {
|
||||
String registrationId = "simplesamlphp";
|
||||
|
||||
String rpEntityId = "{baseUrl}/saml2/service-provider-metadata/{registrationId}";
|
||||
Saml2X509Credential signingCredential = TestSaml2X509Credentials.relyingPartySigningCredential();
|
||||
String assertionConsumerServiceLocation = "{baseUrl}"
|
||||
+ Saml2WebSsoAuthenticationFilter.DEFAULT_FILTER_PROCESSES_URI;
|
||||
|
||||
String apEntityId = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/metadata.php";
|
||||
Saml2X509Credential verificationCertificate = TestSaml2X509Credentials.relyingPartyVerifyingCredential();
|
||||
String singleSignOnServiceLocation = "https://simplesaml-for-spring-saml.cfapps.io/saml2/idp/SSOService.php";
|
||||
|
||||
return RelyingPartyRegistration.withRegistrationId(registrationId).entityId(rpEntityId)
|
||||
.assertionConsumerServiceLocation(assertionConsumerServiceLocation)
|
||||
.credentials((c) -> c.add(signingCredential))
|
||||
|
||||
-3
@@ -82,12 +82,9 @@ public class Saml2WebSsoAuthenticationFilterTests {
|
||||
@Test
|
||||
public void attemptAuthenticationWhenRegistrationIdDoesNotExistThenThrowsException() {
|
||||
given(this.repository.findByRegistrationId("non-existent-id")).willReturn(null);
|
||||
|
||||
this.filter = new Saml2WebSsoAuthenticationFilter(this.repository, "/some/other/path/{registrationId}");
|
||||
|
||||
this.request.setPathInfo("/some/other/path/non-existent-id");
|
||||
this.request.setParameter("SAMLResponse", "response");
|
||||
|
||||
try {
|
||||
this.filter.attemptAuthentication(this.request, this.response);
|
||||
failBecauseExceptionWasNotThrown(Saml2AuthenticationException.class);
|
||||
|
||||
-4
@@ -72,9 +72,7 @@ public class Saml2WebSsoAuthenticationRequestFilterTests {
|
||||
this.request = new MockHttpServletRequest();
|
||||
this.response = new MockHttpServletResponse();
|
||||
this.request.setPathInfo("/saml2/authenticate/registration-id");
|
||||
|
||||
this.filterChain = new MockFilterChain();
|
||||
|
||||
this.rpBuilder = RelyingPartyRegistration.withRegistrationId("registration-id")
|
||||
.providerDetails((c) -> c.entityId("idp-entity-id")).providerDetails((c) -> c.webSsoUrl(IDP_SSO_URL))
|
||||
.assertionConsumerServiceUrlTemplate("template")
|
||||
@@ -155,7 +153,6 @@ public class Saml2WebSsoAuthenticationRequestFilterTests {
|
||||
given(authenticationRequest.getSamlRequest()).willReturn("saml");
|
||||
given(this.repository.findByRegistrationId("registration-id")).willReturn(relyingParty);
|
||||
given(this.factory.createPostAuthenticationRequest(any())).willReturn(authenticationRequest);
|
||||
|
||||
Saml2WebSsoAuthenticationRequestFilter filter = new Saml2WebSsoAuthenticationRequestFilter(this.repository);
|
||||
filter.setAuthenticationRequestFactory(this.factory);
|
||||
filter.doFilterInternal(this.request, this.response, this.filterChain);
|
||||
@@ -176,7 +173,6 @@ public class Saml2WebSsoAuthenticationRequestFilterTests {
|
||||
given(this.resolver.resolve(this.request)).willReturn(TestSaml2AuthenticationRequestContexts
|
||||
.authenticationRequestContext().relyingPartyRegistration(relyingParty).build());
|
||||
given(this.factory.createPostAuthenticationRequest(any())).willReturn(authenticationRequest);
|
||||
|
||||
Saml2WebSsoAuthenticationRequestFilter filter = new Saml2WebSsoAuthenticationRequestFilter(this.resolver,
|
||||
this.factory);
|
||||
filter.doFilterInternal(this.request, this.response, this.filterChain);
|
||||
|
||||
-3
@@ -68,7 +68,6 @@ public class DefaultSaml2AuthenticationRequestContextResolverTests {
|
||||
public void resolveWhenRequestAndRelyingPartyNotNullThenCreateSaml2AuthenticationRequestContext() {
|
||||
this.request.addParameter("RelayState", "relay-state");
|
||||
Saml2AuthenticationRequestContext context = this.authenticationRequestContextResolver.resolve(this.request);
|
||||
|
||||
assertThat(context).isNotNull();
|
||||
assertThat(context.getAssertionConsumerServiceUrl()).isEqualTo(RELYING_PARTY_SSO_URL);
|
||||
assertThat(context.getRelayState()).isEqualTo("relay-state");
|
||||
@@ -82,7 +81,6 @@ public class DefaultSaml2AuthenticationRequestContextResolverTests {
|
||||
public void resolveWhenAssertionConsumerServiceUrlTemplateContainsRegistrationIdThenResolves() {
|
||||
this.relyingPartyBuilder.assertionConsumerServiceLocation("/saml2/authenticate/{registrationId}");
|
||||
Saml2AuthenticationRequestContext context = this.authenticationRequestContextResolver.resolve(this.request);
|
||||
|
||||
assertThat(context.getAssertionConsumerServiceUrl()).isEqualTo("/saml2/authenticate/registration-id");
|
||||
}
|
||||
|
||||
@@ -90,7 +88,6 @@ public class DefaultSaml2AuthenticationRequestContextResolverTests {
|
||||
public void resolveWhenAssertionConsumerServiceUrlTemplateContainsBaseUrlThenResolves() {
|
||||
this.relyingPartyBuilder.assertionConsumerServiceLocation("{baseUrl}/saml2/authenticate/{registrationId}");
|
||||
Saml2AuthenticationRequestContext context = this.authenticationRequestContextResolver.resolve(this.request);
|
||||
|
||||
assertThat(context.getAssertionConsumerServiceUrl())
|
||||
.isEqualTo("http://localhost/saml2/authenticate/registration-id");
|
||||
}
|
||||
|
||||
-27
@@ -67,61 +67,39 @@ public class Saml2MetadataFilterTests {
|
||||
|
||||
@Test
|
||||
public void doFilterWhenMatcherSucceedsThenResolverInvoked() throws Exception {
|
||||
// given
|
||||
this.request.setPathInfo("/saml2/service-provider-metadata/registration-id");
|
||||
|
||||
// when
|
||||
this.filter.doFilter(this.request, this.response, this.chain);
|
||||
|
||||
// then
|
||||
verifyNoInteractions(this.chain);
|
||||
verify(this.repository).findByRegistrationId("registration-id");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doFilterWhenMatcherFailsThenProcessesFilterChain() throws Exception {
|
||||
// given
|
||||
this.request.setPathInfo("/saml2/authenticate/registration-id");
|
||||
|
||||
// when
|
||||
this.filter.doFilter(this.request, this.response, this.chain);
|
||||
|
||||
// then
|
||||
verify(this.chain).doFilter(this.request, this.response);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doFilterWhenNoRelyingPartyRegistrationThenUnauthorized() throws Exception {
|
||||
// given
|
||||
this.request.setPathInfo("/saml2/service-provider-metadata/invalidRegistration");
|
||||
given(this.repository.findByRegistrationId("invalidRegistration")).willReturn(null);
|
||||
|
||||
// when
|
||||
this.filter.doFilter(this.request, this.response, this.chain);
|
||||
|
||||
// then
|
||||
verifyNoInteractions(this.chain);
|
||||
assertThat(this.response.getStatus()).isEqualTo(401);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void doFilterWhenRelyingPartyRegistrationFoundThenInvokesMetadataResolver() throws Exception {
|
||||
// given
|
||||
this.request.setPathInfo("/saml2/service-provider-metadata/validRegistration");
|
||||
RelyingPartyRegistration validRegistration = TestRelyingPartyRegistrations.noCredentials()
|
||||
.assertingPartyDetails((party) -> party.verificationX509Credentials(
|
||||
(c) -> c.add(TestSaml2X509Credentials.relyingPartyVerifyingCredential())))
|
||||
.build();
|
||||
|
||||
String generatedMetadata = "<xml>test</xml>";
|
||||
given(this.resolver.resolve(validRegistration)).willReturn(generatedMetadata);
|
||||
|
||||
this.filter = new Saml2MetadataFilter((request) -> validRegistration, this.resolver);
|
||||
|
||||
// when
|
||||
this.filter.doFilter(this.request, this.response, this.chain);
|
||||
|
||||
// then
|
||||
verifyNoInteractions(this.chain);
|
||||
assertThat(this.response.getStatus()).isEqualTo(200);
|
||||
assertThat(this.response.getContentAsString()).isEqualTo(generatedMetadata);
|
||||
@@ -130,14 +108,9 @@ public class Saml2MetadataFilterTests {
|
||||
|
||||
@Test
|
||||
public void doFilterWhenCustomRequestMatcherThenUses() throws Exception {
|
||||
// given
|
||||
this.request.setPathInfo("/path");
|
||||
this.filter.setRequestMatcher(new AntPathRequestMatcher("/path"));
|
||||
|
||||
// when
|
||||
this.filter.doFilter(this.request, this.response, this.chain);
|
||||
|
||||
// then
|
||||
verifyNoInteractions(this.chain);
|
||||
verify(this.repository).findByRegistrationId("path");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user