You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2018/02/28 12:13:10 UTC
[cxf] branch master updated: Adding a test to make sure the
principal from a SAML Assertion includes comments if they are present in
the assertion
This is an automated email from the ASF dual-hosted git repository.
coheigea pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new 6412142 Adding a test to make sure the principal from a SAML Assertion includes comments if they are present in the assertion
6412142 is described below
commit 6412142e16cf113704ed9983d69a2443dea5ea56
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Wed Feb 28 12:12:47 2018 +0000
Adding a test to make sure the principal from a SAML Assertion includes comments if they are present in the assertion
---
.../token/validator/SAMLTokenValidatorTest.java | 51 +++++++++++++++++++---
1 file changed, 45 insertions(+), 6 deletions(-)
diff --git a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/validator/SAMLTokenValidatorTest.java b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/validator/SAMLTokenValidatorTest.java
index e8b6740..e22d984 100644
--- a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/validator/SAMLTokenValidatorTest.java
+++ b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/validator/SAMLTokenValidatorTest.java
@@ -474,6 +474,39 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
assertTrue(validatorResponse.getToken().getState() != STATE.VALID);
}
+ @org.junit.Test
+ public void testSAML2SubjectWithComment() throws Exception {
+ TokenValidator samlTokenValidator = new SAMLTokenValidator();
+ TokenValidatorParameters validatorParameters = createValidatorParameters();
+ TokenRequirements tokenRequirements = validatorParameters.getTokenRequirements();
+
+ // Create a ValidateTarget consisting of a SAML Assertion
+ Crypto crypto = CryptoFactory.getInstance(getEncryptionProperties());
+ CallbackHandler callbackHandler = new PasswordCallbackHandler();
+ String principalName = "alice<!---->o=example.com";
+ Element samlToken =
+ createSAMLAssertion(principalName, WSS4JConstants.WSS_SAML2_TOKEN_TYPE, crypto,
+ "mystskey", callbackHandler);
+ Document doc = samlToken.getOwnerDocument();
+ samlToken = (Element)doc.appendChild(samlToken);
+
+ ReceivedToken validateTarget = new ReceivedToken(samlToken);
+ tokenRequirements.setValidateTarget(validateTarget);
+ validatorParameters.setToken(validateTarget);
+
+ assertTrue(samlTokenValidator.canHandleToken(validateTarget));
+
+ TokenValidatorResponse validatorResponse =
+ samlTokenValidator.validateToken(validatorParameters);
+ assertTrue(validatorResponse != null);
+ assertTrue(validatorResponse.getToken() != null);
+ assertTrue(validatorResponse.getToken().getState() == STATE.VALID);
+
+ Principal principal = validatorResponse.getPrincipal();
+ assertTrue(principal != null && principal.getName() != null);
+ assertEquals(principalName, principal.getName());
+ }
+
private TokenValidatorParameters createValidatorParameters() throws WSSecurityException {
TokenValidatorParameters parameters = new TokenValidatorParameters();
@@ -508,10 +541,16 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
private Element createSAMLAssertion(
String tokenType, Crypto crypto, String signatureUsername, CallbackHandler callbackHandler
) throws WSSecurityException {
+ return createSAMLAssertion("alice", tokenType, crypto, signatureUsername, callbackHandler);
+ }
+
+ private Element createSAMLAssertion(
+ String subjectName, String tokenType, Crypto crypto, String signatureUsername, CallbackHandler callbackHandler
+ ) throws WSSecurityException {
TokenProvider samlTokenProvider = new SAMLTokenProvider();
TokenProviderParameters providerParameters =
createProviderParameters(
- tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
+ subjectName, tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
);
TokenProviderResponse providerResponse = samlTokenProvider.createToken(providerParameters);
assertTrue(providerResponse != null);
@@ -527,7 +566,7 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
TokenProvider samlTokenProvider = new SAMLTokenProvider();
TokenProviderParameters providerParameters =
createProviderParameters(
- tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
+ "alice", tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
);
ClaimsManager claimsManager = new ClaimsManager();
@@ -558,7 +597,7 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
samlTokenProvider.setAttributeStatementProviders(Collections.singletonList(statementProvider));
TokenProviderParameters providerParameters =
createProviderParameters(
- tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
+ "alice", tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
);
TokenProviderResponse providerResponse = samlTokenProvider.createToken(providerParameters);
assertTrue(providerResponse != null);
@@ -577,7 +616,7 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
samlTokenProvider.setConditionsProvider(conditionsProvider);
TokenProviderParameters providerParameters =
createProviderParameters(
- tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
+ "alice", tokenType, STSConstants.BEARER_KEY_KEYTYPE, crypto, signatureUsername, callbackHandler
);
if (ttlMs != 0) {
@@ -599,7 +638,7 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
}
private TokenProviderParameters createProviderParameters(
- String tokenType, String keyType, Crypto crypto,
+ String subjectName, String tokenType, String keyType, Crypto crypto,
String signatureUsername, CallbackHandler callbackHandler
) throws WSSecurityException {
TokenProviderParameters parameters = new TokenProviderParameters();
@@ -612,7 +651,7 @@ public class SAMLTokenValidatorTest extends org.junit.Assert {
keyRequirements.setKeyType(keyType);
parameters.setKeyRequirements(keyRequirements);
- parameters.setPrincipal(new CustomTokenPrincipal("alice"));
+ parameters.setPrincipal(new CustomTokenPrincipal(subjectName));
// Mock up message context
MessageImpl msg = new MessageImpl();
WrappedMessageContext msgCtx = new WrappedMessageContext(msg);
--
To stop receiving notification emails like this one, please contact
coheigea@apache.org.