You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by mu...@apache.org on 2007/08/01 06:27:05 UTC
svn commit: r561642 - in
/webservices/rampart/trunk/java/modules/rampart-integration: pom.xml
src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
src/test/java/org/apache/rahas/SAMLDataProvider.java
src/test/resources/rahas/s5-services.xml
Author: muthulee
Date: Tue Jul 31 21:27:04 2007
New Revision: 561642
URL: http://svn.apache.org/viewvc?view=rev&rev=561642
Log:
Adding a test case that uses the DataCallback
Added:
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/SAMLDataProvider.java
webservices/rampart/trunk/java/modules/rampart-integration/src/test/resources/rahas/s5-services.xml
Modified:
webservices/rampart/trunk/java/modules/rampart-integration/pom.xml
Modified: webservices/rampart/trunk/java/modules/rampart-integration/pom.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/pom.xml?view=diff&rev=561642&r1=561641&r2=561642
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/pom.xml (original)
+++ webservices/rampart/trunk/java/modules/rampart-integration/pom.xml Tue Jul 31 21:27:04 2007
@@ -341,6 +341,27 @@
tofile="target/test-resources/default_security_client_repo/modules/addressing-SNAPSHOT.mar"/>
<copy file="src/test/resources/conf/axis2.xml"
tofile="target/test-resources/default_security_client_repo/conf/axis2.xml"/>
+ <!--
+ RahasSAMLTokenAttributeTest
+ -->
+ <mkdir dir="target/test-resources/rahas_service_repo_5"/>
+ <mkdir dir="target/test-resources/rahas_service_repo_5/conf"/>
+ <mkdir dir="target/test-resources/rahas_service_repo_5/services"/>
+ <mkdir dir="target/test-resources/rahas_service_repo_5/modules"/>
+ <copy file="target/artifacts/rampart-SNAPSHOT.mar"
+ tofile="target/test-resources/rahas_service_repo_5/modules/rampart-SNAPSHOT.mar"/>
+ <copy file="target/artifacts/rahas-SNAPSHOT.mar"
+ tofile="target/test-resources/rahas_service_repo_5/modules/rahas-SNAPSHOT.mar"/>
+ <copy file="target/artifacts/addressing-SNAPSHOT.mar"
+ tofile="target/test-resources/rahas_service_repo_5/modules/addressing-SNAPSHOT.mar"/>
+ <!-- copy the services.xml and create the aar -->
+ <copy overwrite="yes"
+ file="src/test/resources/rahas/s5-services.xml"
+ tofile="target/temp-rahas/META-INF/services.xml"/>
+ <jar jarfile="target/test-resources/rahas_service_repo_5/services/SecureService.aar"
+ basedir="target/temp-rahas"/>
+
+ <!--RahasAttributeTest END-->
<!-- Scenario 1 -->
<mkdir dir="target/test-resources/scenario1_client_repo"/>
<mkdir dir="target/test-resources/scenario1_client_repo/conf"/>
Added: webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java?view=auto&rev=561642
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/RahasSAMLTokenAttributeTest.java Tue Jul 31 21:27:04 2007
@@ -0,0 +1,103 @@
+package org.apache.rahas;
+
+import javax.xml.namespace.QName;
+
+import org.apache.axiom.om.OMAbstractFactory;
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMFactory;
+import org.apache.neethi.Policy;
+import org.apache.rampart.handler.config.InflowConfiguration;
+import org.apache.rampart.handler.config.OutflowConfiguration;
+import org.apache.ws.secpolicy.Constants;
+import org.opensaml.XML;
+
+public class RahasSAMLTokenAttributeTest extends TestClient{
+
+ public RahasSAMLTokenAttributeTest(String name) {
+ super(name);
+ }
+
+ public OMElement getRequest() {
+ try {
+ OMElement rstElem = TrustUtil.createRequestSecurityTokenElement(RahasConstants.VERSION_05_02);
+ TrustUtil.createRequestTypeElement(RahasConstants.VERSION_05_02, rstElem, RahasConstants.REQ_TYPE_ISSUE);
+ OMElement tokenTypeElem = TrustUtil.createTokenTypeElement(RahasConstants.VERSION_05_02, rstElem);
+ tokenTypeElem.setText(RahasConstants.TOK_TYPE_SAML_10);
+
+ TrustUtil.createAppliesToElement(rstElem, "http://localhost:5555/axis2/services/SecureService", this.getWSANamespace());
+ TrustUtil.createKeyTypeElement(RahasConstants.VERSION_05_02,
+ rstElem, RahasConstants.KEY_TYPE_SYMM_KEY);
+ TrustUtil.createKeySizeElement(RahasConstants.VERSION_05_02, rstElem, 256);
+
+ return rstElem;
+
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public OutflowConfiguration getClientOutflowConfiguration() {
+ OutflowConfiguration ofc = new OutflowConfiguration();
+
+ ofc.setActionItems("UsernameToken Timestamp");
+ ofc.setUser("joe");
+ ofc.setPasswordCallbackClass(PWCallback.class.getName());
+ return ofc;
+ }
+
+ public InflowConfiguration getClientInflowConfiguration() {
+ InflowConfiguration ifc = new InflowConfiguration();
+
+ ifc.setActionItems("Timestamp");
+
+ return ifc;
+ }
+
+ public String getServiceRepo() {
+ return "rahas_service_repo_5";
+ }
+
+ public String getRequestAction() throws TrustException {
+ return TrustUtil.getActionValue(RahasConstants.VERSION_05_02, RahasConstants.RST_ACTION_ISSUE);
+ }
+
+ public void validateRsponse(OMElement resp) {
+ OMElement rst = resp.getFirstChildWithName(new QName(RahasConstants.WST_NS_05_02,
+ RahasConstants.IssuanceBindingLocalNames.
+ REQUESTED_SECURITY_TOKEN));
+ assertNotNull("RequestedSecurityToken missing", rst);
+ OMElement elem = rst.getFirstChildWithName(new QName(XML.SAML_NS, "Assertion"));
+ assertNotNull("Missing SAML Assertoin", elem);
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.rahas.TestClient#getServicePolicy()
+ */
+ public Policy getServicePolicy() throws Exception {
+ return this.getPolicy("test-resources/rahas/policy/service-policy-transport-binding.xml");
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.rahas.TestClient#getSTSPolicy()
+ */
+ public Policy getSTSPolicy() throws Exception {
+ return this.getPolicy("test-resources/rahas/policy/sts-policy-transport-binding.xml");
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.rahas.TestClient#getRSTTemplate()
+ */
+ public OMElement getRSTTemplate() throws TrustException {
+ OMFactory factory = OMAbstractFactory.getOMFactory();
+ OMElement elem = factory.createOMElement(Constants.RST_TEMPLATE.getLocalPart(), factory.createOMNamespace(Constants.RST_TEMPLATE.getNamespaceURI(),"wsp"));
+
+ TrustUtil.createTokenTypeElement(RahasConstants.VERSION_05_02, elem).setText(RahasConstants.TOK_TYPE_SAML_10);
+ TrustUtil.createKeyTypeElement(RahasConstants.VERSION_05_02, elem, RahasConstants.KEY_TYPE_BEARER);
+
+ return elem;
+ }
+
+ public int getTrstVersion() {
+ return RahasConstants.VERSION_05_02;
+ }
+}
Added: webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/SAMLDataProvider.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/SAMLDataProvider.java?view=auto&rev=561642
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/SAMLDataProvider.java (added)
+++ webservices/rampart/trunk/java/modules/rampart-integration/src/test/java/org/apache/rahas/SAMLDataProvider.java Tue Jul 31 21:27:04 2007
@@ -0,0 +1,31 @@
+package org.apache.rahas;
+
+import java.util.Arrays;
+
+import org.apache.rahas.impl.util.SAMLAttributeCallback;
+import org.apache.rahas.impl.util.SAMLCallback;
+import org.apache.rahas.impl.util.SAMLCallbackHandler;
+import org.apache.rahas.impl.util.SAMLNameIdentifierCallback;
+import org.opensaml.SAMLAttribute;
+import org.opensaml.SAMLException;
+import org.opensaml.SAMLNameIdentifier;
+
+public class SAMLDataProvider implements SAMLCallbackHandler{
+
+ public void handle(SAMLCallback callback) throws SAMLException{
+
+ if(callback.getCallbackType() == SAMLCallback.ATTR_CALLBACK){
+ SAMLAttributeCallback cb = (SAMLAttributeCallback)callback;
+ SAMLAttribute attribute = new SAMLAttribute("Name",
+ "https://rahas.apache.org/saml/attrns", null, -1, Arrays
+ .asList(new String[] { "Custom/Rahas" }));
+ cb.addAttributes(attribute);
+ }else if(callback.getCallbackType() == SAMLCallback.NAME_IDENTIFIER_CALLBACK){
+ SAMLNameIdentifierCallback cb = (SAMLNameIdentifierCallback)callback;
+ SAMLNameIdentifier nameId = new SAMLNameIdentifier(
+ "David", null, SAMLNameIdentifier.FORMAT_EMAIL);
+ cb.setNameId(nameId);
+ }
+
+ }
+}
Added: webservices/rampart/trunk/java/modules/rampart-integration/src/test/resources/rahas/s5-services.xml
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-integration/src/test/resources/rahas/s5-services.xml?view=auto&rev=561642
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-integration/src/test/resources/rahas/s5-services.xml (added)
+++ webservices/rampart/trunk/java/modules/rampart-integration/src/test/resources/rahas/s5-services.xml Tue Jul 31 21:27:04 2007
@@ -0,0 +1,70 @@
+<service name="SecureService">
+
+ <module ref="rampart"/>
+ <module ref="rahas"/>
+
+ <parameter locked="false" name="ServiceClass">org.apache.rahas.Service</parameter>
+
+ <operation name="echo">
+ <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+ <actionMapping>urn:echo</actionMapping>
+ </operation>
+
+ <parameter name="saml-issuer-config">
+ <saml-issuer-config>
+ <issuerName>Test_STS</issuerName>
+ <issuerKeyAlias>ip</issuerKeyAlias>
+ <issuerKeyPassword>password</issuerKeyPassword>
+ <cryptoProperties>
+ <crypto provider="org.apache.ws.security.components.crypto.Merlin">
+ <property name="org.apache.ws.security.crypto.merlin.keystore.type">JKS</property>
+ <property name="org.apache.ws.security.crypto.merlin.file">rahas-sts.jks</property>
+ <property name="org.apache.ws.security.crypto.merlin.keystore.password">password</property>
+ </crypto>
+ </cryptoProperties>
+ <timeToLive>300000</timeToLive>
+ <keySize>256</keySize>
+ <addRequestedAttachedRef />
+ <addRequestedUnattachedRef />
+ <dataCallbackHandlerClass>org.apache.rahas.SAMLDataProvider</dataCallbackHandlerClass>
+ <!--
+ Key computation mechanism
+ 1 - Use Request Entropy
+ 2 - Provide Entropy
+ 3 - Use Own Key
+ -->
+ <keyComputation>2</keyComputation>
+
+ <!--
+ proofKeyType element is valid only if the keyComputation is set to 3
+ i.e. Use Own Key
+
+ Valid values are: EncryptedKey & BinarySecret
+ -->
+ <proofKeyType>BinarySecret</proofKeyType>
+ <trusted-services>
+ <service alias="bob">http://localhost:5555/axis2/services/SecureService</service>
+ <service alias="bob1">http://localhost:5555/axis2/services/SecureService1</service>
+ <service alias="bob2">http://localhost:5555/axis2/services/SecureService2</service>
+ <service alias="bob3">http://localhost:5555/axis2/services/SecureService3</service>
+ </trusted-services>
+ </saml-issuer-config>
+ </parameter>
+
+ <parameter name="InflowSecurity">
+ <action>
+ <items>UsernameToken Timestamp</items>
+ <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
+ </action>
+ </parameter>
+
+ <parameter name="OutflowSecurity">
+ <action>
+ <items>Timestamp</items>
+ <user>ip</user>
+ <passwordCallbackClass xmlns="">org.apache.rahas.PWCallback</passwordCallbackClass>
+ <enableSignatureConfirmation>false</enableSignatureConfirmation>
+ </action>
+ </parameter>
+
+</service>