Skip to content

Commit 8904361

Browse files
committed
Polish Saml Tests
Fixes gh-8403 Fixes gh-8404
1 parent 7056c2d commit 8904361

File tree

9 files changed

+383
-540
lines changed

9 files changed

+383
-540
lines changed

saml2/saml2-service-provider/src/main/java/org/springframework/security/saml2/provider/service/servlet/filter/Saml2WebSsoAuthenticationFilter.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,5 +117,4 @@ private String inflateIfRequired(HttpServletRequest request, byte[] b) {
117117
return new String(b, UTF_8);
118118
}
119119
}
120-
121120
}

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/authentication/OpenSamlAuthenticationProviderTests.java

Lines changed: 114 additions & 194 deletions
Large diffs are not rendered by default.

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/authentication/OpenSamlAuthenticationRequestFactoryTests.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@
2323
import org.junit.rules.ExpectedException;
2424
import org.opensaml.saml.common.xml.SAMLConstants;
2525
import org.opensaml.saml.saml2.core.AuthnRequest;
26+
2627
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
2728
import org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding;
2829

2930
import static java.nio.charset.StandardCharsets.UTF_8;
3031
import static org.assertj.core.api.Assertions.assertThat;
3132
import static org.hamcrest.CoreMatchers.containsString;
3233
import static org.springframework.security.saml2.provider.service.authentication.Saml2Utils.samlDecode;
33-
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartyCredentials;
34+
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartySigningCredential;
3435
import static org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration.withRelyingPartyRegistration;
3536
import static org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding.POST;
3637
import static org.springframework.security.saml2.provider.service.registration.Saml2MessageBinding.REDIRECT;
@@ -55,7 +56,7 @@ public void setUp() {
5556
.providerDetails(c -> c.webSsoUrl("https://destination/sso"))
5657
.providerDetails(c -> c.entityId("remote-entity-id"))
5758
.localEntityIdTemplate("local-entity-id")
58-
.credentials(c -> c.addAll(relyingPartyCredentials()))
59+
.credentials(c -> c.add(relyingPartySigningCredential()))
5960
.build();
6061
contextBuilder = Saml2AuthenticationRequestContext.builder()
6162
.issuer("https://issuer")

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/authentication/OpenSamlImplementationTests.java

Lines changed: 11 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,24 +16,22 @@
1616

1717
package org.springframework.security.saml2.provider.service.authentication;
1818

19+
import java.util.Arrays;
20+
import java.util.Map;
21+
1922
import org.junit.Test;
20-
import org.opensaml.security.credential.BasicCredential;
21-
import org.opensaml.security.credential.Credential;
22-
import org.opensaml.security.credential.CredentialSupport;
23-
import org.opensaml.security.credential.UsageType;
2423
import org.opensaml.xmlsec.crypto.XMLSigningUtil;
24+
2525
import org.springframework.security.saml2.credentials.Saml2X509Credential;
2626
import org.springframework.web.util.UriUtils;
2727

28-
import java.util.List;
29-
import java.util.Map;
30-
3128
import static java.nio.charset.StandardCharsets.ISO_8859_1;
3229
import static java.nio.charset.StandardCharsets.UTF_8;
3330
import static org.assertj.core.api.Assertions.assertThat;
3431
import static org.opensaml.xmlsec.signature.support.SignatureConstants.ALGO_ID_SIGNATURE_RSA_SHA256;
35-
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.assertingPartyCredentials;
36-
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartyCredentials;
32+
import static org.springframework.security.saml2.provider.service.authentication.TestOpenSamlObjects.getSigningCredential;
33+
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.assertingPartySigningCredential;
34+
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartyVerifyingCredential;
3735

3836
public class OpenSamlImplementationTests {
3937

@@ -45,12 +43,12 @@ public void getInstance() {
4543
@Test
4644
public void signQueryParametersWhenDataSuppliedReturnsValidSignature() throws Exception {
4745
OpenSamlImplementation impl = OpenSamlImplementation.getInstance();
48-
List<Saml2X509Credential> signCredentials = relyingPartyCredentials();
49-
List<Saml2X509Credential> verifyCredentials = assertingPartyCredentials();
46+
Saml2X509Credential signingCredential = assertingPartySigningCredential();
47+
Saml2X509Credential verifyingCredential = relyingPartyVerifyingCredential();
5048
String samlRequest = "saml-request-example";
5149
String encoded = Saml2Utils.samlEncode(samlRequest.getBytes(UTF_8));
5250
String relayState = "test relay state";
53-
Map<String, String> parameters = impl.signQueryParameters(signCredentials, encoded, relayState);
51+
Map<String, String> parameters = impl.signQueryParameters(Arrays.asList(signingCredential), encoded, relayState);
5452

5553
String queryString = "SAMLRequest=" +
5654
UriUtils.encode(encoded, ISO_8859_1) +
@@ -62,21 +60,11 @@ public void signQueryParametersWhenDataSuppliedReturnsValidSignature() throws Ex
6260

6361
byte[] signature = Saml2Utils.samlDecode(parameters.get("Signature"));
6462
boolean result = XMLSigningUtil.verifyWithURI(
65-
getOpenSamlCredential(verifyCredentials.get(1), "local-sp-entity-id", UsageType.SIGNING),
63+
getSigningCredential(verifyingCredential, "local-sp-entity-id"),
6664
ALGO_ID_SIGNATURE_RSA_SHA256,
6765
signature,
6866
queryString.getBytes(UTF_8)
6967
);
7068
assertThat(result).isTrue();
7169
}
72-
73-
private Credential getOpenSamlCredential(Saml2X509Credential credential, String localSpEntityId, UsageType usageType) {
74-
BasicCredential cred = CredentialSupport.getSimpleCredential(
75-
credential.getCertificate(),
76-
credential.getPrivateKey()
77-
);
78-
cred.setEntityId(localSpEntityId);
79-
cred.setUsageType(usageType);
80-
return cred;
81-
}
8270
}

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/authentication/Saml2AuthenticationRequestFactoryTests.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,16 @@
1616

1717
package org.springframework.security.saml2.provider.service.authentication;
1818

19+
import java.util.UUID;
20+
1921
import org.junit.Test;
20-
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
2122

22-
import java.util.UUID;
23+
import org.springframework.security.saml2.provider.service.registration.RelyingPartyRegistration;
2324

2425
import static org.assertj.core.api.Assertions.assertThat;
2526
import static org.springframework.security.saml2.provider.service.authentication.Saml2Utils.samlDecode;
2627
import static org.springframework.security.saml2.provider.service.authentication.Saml2Utils.samlInflate;
27-
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartyCredentials;
28+
import static org.springframework.security.saml2.provider.service.authentication.TestSaml2X509Credentials.relyingPartySigningCredential;
2829

2930
/**
3031
* Tests for {@link Saml2AuthenticationRequestFactory} default interface methods
@@ -36,7 +37,7 @@ public class Saml2AuthenticationRequestFactoryTests {
3637
.providerDetails(c -> c.webSsoUrl("https://example.com/destination"))
3738
.providerDetails(c -> c.entityId("remote-entity-id"))
3839
.localEntityIdTemplate("local-entity-id")
39-
.credentials(c -> c.addAll(relyingPartyCredentials()))
40+
.credentials(c -> c.add(relyingPartySigningCredential()))
4041
.build();
4142

4243
@Test

saml2/saml2-service-provider/src/test/java/org/springframework/security/saml2/provider/service/authentication/Saml2CryptoTestSupport.java

Lines changed: 0 additions & 169 deletions
This file was deleted.

0 commit comments

Comments
 (0)