cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cohei...@apache.org
Subject cxf git commit: Updating ActAs unit tests in the STS code
Date Thu, 20 Oct 2016 11:20:33 GMT
Repository: cxf
Updated Branches:
  refs/heads/master d2dca6796 -> 57bb94e0a


Updating ActAs unit tests in the STS code


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/57bb94e0
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/57bb94e0
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/57bb94e0

Branch: refs/heads/master
Commit: 57bb94e0a3b422c69bafed32f5d0bd7a59e67f64
Parents: d2dca67
Author: Colm O hEigeartaigh <coheigea@apache.org>
Authored: Thu Oct 20 12:20:00 2016 +0100
Committer: Colm O hEigeartaigh <coheigea@apache.org>
Committed: Thu Oct 20 12:20:00 2016 +0100

----------------------------------------------------------------------
 .../token/provider/SAMLProviderActAsTest.java   | 63 ++++++++++++++++----
 1 file changed, 52 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/57bb94e0/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderActAsTest.java
----------------------------------------------------------------------
diff --git a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderActAsTest.java
b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderActAsTest.java
index 96628b8..c801906 100644
--- a/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderActAsTest.java
+++ b/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderActAsTest.java
@@ -25,6 +25,7 @@ import java.util.Properties;
 import javax.xml.bind.JAXBElement;
 
 import org.w3c.dom.Element;
+
 import org.apache.cxf.jaxws.context.WrappedMessageContext;
 import org.apache.cxf.message.MessageImpl;
 import org.apache.cxf.sts.QNameConstants;
@@ -43,9 +44,13 @@ import org.apache.wss4j.common.crypto.Crypto;
 import org.apache.wss4j.common.crypto.CryptoFactory;
 import org.apache.wss4j.common.ext.WSSecurityException;
 import org.apache.wss4j.common.principal.CustomTokenPrincipal;
+import org.apache.wss4j.common.saml.SamlAssertionWrapper;
 import org.apache.wss4j.common.util.DOM2Writer;
 import org.apache.wss4j.dom.WSConstants;
 
+import org.junit.Assert;
+import org.opensaml.core.xml.XMLObject;
+
 /**
  * Some unit tests for creating SAML Tokens with an ActAs element.
  */
@@ -80,12 +85,29 @@ public class SAMLProviderActAsTest extends org.junit.Assert {
         assertTrue(providerResponse != null);
         assertTrue(providerResponse.getToken() != null && providerResponse.getTokenId()
!= null);
         
+        // Verify the token
         Element token = (Element)providerResponse.getToken();
-        String tokenString = DOM2Writer.nodeToString(token);
-        assertTrue(tokenString.contains(providerResponse.getTokenId()));
-        assertTrue(tokenString.contains("AttributeStatement"));
-        assertTrue(tokenString.contains("ActAs"));
-        assertTrue(tokenString.contains("bob"));
+        SamlAssertionWrapper assertion = new SamlAssertionWrapper(token);
+        Assert.assertEquals("technical-user", assertion.getSubjectName());
+        
+        boolean foundActAsAttribute = false;
+        for (org.opensaml.saml.saml1.core.AttributeStatement attributeStatement 
+            : assertion.getSaml1().getAttributeStatements()) {
+            for (org.opensaml.saml.saml1.core.Attribute attribute : attributeStatement.getAttributes())
{
+                if ("ActAs".equals(attribute.getAttributeName())) {
+                    for (XMLObject attributeValue : attribute.getAttributeValues()) {
+                        Element attributeValueElement = attributeValue.getDOM();
+                        String text = attributeValueElement.getTextContent();
+                        if (text.contains("bob")) {
+                            foundActAsAttribute = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        
+        Assert.assertTrue(foundActAsAttribute);
     }
     
     /**
@@ -95,7 +117,7 @@ public class SAMLProviderActAsTest extends org.junit.Assert {
     public void testDefaultSaml2ActAsAssertion() throws Exception {
         TokenProvider samlTokenProvider = new SAMLTokenProvider();
         
-        String user = "alice";
+        String user = "bob";
         Element saml1Assertion = getSAMLAssertion();
         
         TokenProviderParameters providerParameters = 
@@ -111,11 +133,29 @@ public class SAMLProviderActAsTest extends org.junit.Assert {
         assertTrue(providerResponse != null);
         assertTrue(providerResponse.getToken() != null && providerResponse.getTokenId()
!= null);
         
+        // Verify the token
         Element token = (Element)providerResponse.getToken();
-        String tokenString = DOM2Writer.nodeToString(token);
-        assertTrue(tokenString.contains(providerResponse.getTokenId()));
-        assertTrue(tokenString.contains("AttributeStatement"));
-        assertTrue(tokenString.contains("ActAs"));
+        SamlAssertionWrapper assertion = new SamlAssertionWrapper(token);
+        Assert.assertEquals("technical-user", assertion.getSubjectName());
+        
+        boolean foundActAsAttribute = false;
+        for (org.opensaml.saml.saml2.core.AttributeStatement attributeStatement 
+            : assertion.getSaml2().getAttributeStatements()) {
+            for (org.opensaml.saml.saml2.core.Attribute attribute : attributeStatement.getAttributes())
{
+                if ("ActAs".equals(attribute.getName())) {
+                    for (XMLObject attributeValue : attribute.getAttributeValues()) {
+                        Element attributeValueElement = attributeValue.getDOM();
+                        String text = attributeValueElement.getTextContent();
+                        if (text.contains("bob")) {
+                            foundActAsAttribute = true;
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+        
+        Assert.assertTrue(foundActAsAttribute);
     }
     
     /**
@@ -178,6 +218,7 @@ public class SAMLProviderActAsTest extends org.junit.Assert {
         TokenProvider samlTokenProvider = new SAMLTokenProvider();
         TokenProviderParameters providerParameters = 
             createProviderParameters(WSConstants.WSS_SAML_TOKEN_TYPE, STSConstants.BEARER_KEY_KEYTYPE,
null);
+        providerParameters.setPrincipal(new CustomTokenPrincipal("bob"));
         assertTrue(samlTokenProvider.canHandleToken(WSConstants.WSS_SAML_TOKEN_TYPE));
         TokenProviderResponse providerResponse = samlTokenProvider.createToken(providerParameters);
         assertTrue(providerResponse != null);
@@ -206,7 +247,7 @@ public class SAMLProviderActAsTest extends org.junit.Assert {
         keyRequirements.setKeyType(keyType);
         parameters.setKeyRequirements(keyRequirements);
         
-        parameters.setPrincipal(new CustomTokenPrincipal("alice"));
+        parameters.setPrincipal(new CustomTokenPrincipal("technical-user"));
         // Mock up message context
         MessageImpl msg = new MessageImpl();
         WrappedMessageContext msgCtx = new WrappedMessageContext(msg);


Mime
View raw message