You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ow...@apache.org on 2012/03/23 09:16:59 UTC

svn commit: r1304223 - in /cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider: CustomAuthenticationProvider.java SAMLProviderCustomTest.java

Author: owulff
Date: Fri Mar 23 08:16:59 2012
New Revision: 1304223

URL: http://svn.apache.org/viewvc?rev=1304223&view=rev
Log:
Testcase added for AuthenticationMethod in SAML tokens - requires WSS4J 1.6.6

Modified:
    cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/CustomAuthenticationProvider.java
    cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderCustomTest.java

Modified: cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/CustomAuthenticationProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/CustomAuthenticationProvider.java?rev=1304223&r1=1304222&r2=1304223&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/CustomAuthenticationProvider.java (original)
+++ cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/CustomAuthenticationProvider.java Fri Mar 23 08:16:59 2012
@@ -18,8 +18,11 @@
  */
 package org.apache.cxf.sts.token.provider;
 
+import org.apache.ws.security.WSConstants;
 import org.apache.ws.security.saml.ext.bean.AuthenticationStatementBean;
 import org.apache.ws.security.saml.ext.bean.SubjectLocalityBean;
+import org.apache.ws.security.saml.ext.builder.SAML1Constants;
+import org.apache.ws.security.saml.ext.builder.SAML2Constants;
 
 /**
  * A custom AuthenticationStatementProvider implementation for use in the tests.
@@ -35,9 +38,13 @@ public class CustomAuthenticationProvide
         SubjectLocalityBean subjectLocality = new SubjectLocalityBean();
         subjectLocality.setIpAddress("127.0.0.1");
         authBean.setSubjectLocality(subjectLocality);
-
-        authBean.setAuthenticationMethod("Password");
         
+        if (WSConstants.WSS_SAML_TOKEN_TYPE.equals(
+                providerParameters.getTokenRequirements().getTokenType())) {
+            authBean.setAuthenticationMethod(SAML1Constants.AUTH_METHOD_X509);
+        } else {
+            authBean.setAuthenticationMethod(SAML2Constants.AUTH_CONTEXT_CLASS_REF_X509);
+        }
         return authBean;
     }
     

Modified: cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderCustomTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderCustomTest.java?rev=1304223&r1=1304222&r2=1304223&view=diff
==============================================================================
--- cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderCustomTest.java (original)
+++ cxf/trunk/services/sts/sts-core/src/test/java/org/apache/cxf/sts/token/provider/SAMLProviderCustomTest.java Fri Mar 23 08:16:59 2012
@@ -40,6 +40,7 @@ import org.apache.ws.security.WSSecurity
 import org.apache.ws.security.components.crypto.Crypto;
 import org.apache.ws.security.components.crypto.CryptoFactory;
 import org.apache.ws.security.saml.ext.builder.SAML1Constants;
+import org.apache.ws.security.saml.ext.builder.SAML2Constants;
 import org.apache.ws.security.util.DOM2Writer;
 
 /**
@@ -98,6 +99,35 @@ public class SAMLProviderCustomTest exte
         assertTrue(tokenString.contains(providerResponse.getTokenId()));
         assertFalse(tokenString.contains("AttributeStatement"));
         assertTrue(tokenString.contains("AuthnStatement"));
+        assertTrue(tokenString.contains(SAML2Constants.AUTH_CONTEXT_CLASS_REF_X509));
+        assertTrue(tokenString.contains("alice"));
+    }
+    
+    /**
+     * Create a custom Saml1 Authentication Assertion.
+     */
+    @org.junit.Test
+    public void testCustomSaml1AuthenticationAssertion() throws Exception {
+        TokenProvider samlTokenProvider = new SAMLTokenProvider();
+        TokenProviderParameters providerParameters = 
+            createProviderParameters(WSConstants.WSS_SAML_TOKEN_TYPE, STSConstants.BEARER_KEY_KEYTYPE);
+        
+        List<AuthenticationStatementProvider> customProviderList = 
+            new ArrayList<AuthenticationStatementProvider>();
+        customProviderList.add(new CustomAuthenticationProvider());
+        ((SAMLTokenProvider)samlTokenProvider).setAuthenticationStatementProviders(customProviderList);
+        
+        assertTrue(samlTokenProvider.canHandleToken(WSConstants.WSS_SAML_TOKEN_TYPE));
+        TokenProviderResponse providerResponse = samlTokenProvider.createToken(providerParameters);
+        assertTrue(providerResponse != null);
+        assertTrue(providerResponse.getToken() != null && providerResponse.getTokenId() != null);
+        
+        Element token = providerResponse.getToken();
+        String tokenString = DOM2Writer.nodeToString(token);
+        assertTrue(tokenString.contains(providerResponse.getTokenId()));
+        assertFalse(tokenString.contains("AttributeStatement"));
+        assertTrue(tokenString.contains("AuthenticationStatement"));
+        assertTrue(tokenString.contains(SAML1Constants.AUTH_METHOD_X509));
         assertTrue(tokenString.contains("alice"));
     }