svn commit: r1073747 - in /axis/axis2/java/rampart/branches/1_6/modules: rampart-core/src/main/java/org/apache/rampart/ rampart-core/src/main/java/org/apache/rampart/handler/ rampart-core/src/main/jav
Author: thilinamb Date: Wed Feb 23 14:00:54 2011 New Revision: 1073747 URL: http://svn.apache.org/viewvc?rev=1073747&view=rev Log: Applying the patch provided by AmilaJ for RAMPART-299. Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/handler/WSSHandlerConstants.java axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/pom.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java axis/axis2/java/rampart/branches/1_6/modules/rampart-trust-mar/module.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/client/STSClient.java axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/impl/SCTIssuer.java Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java?rev=1073747&r1=1073746&r2=1073747&view=diff == --- axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java (original) +++ axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartMessageData.java Wed Feb 23 14:00:54 2011 @@ -26,6 +26,7 @@ import org.apache.axis2.context.Operatio import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; import org.apache.axis2.wsdl.WSDLConstants; +import org.apache.neethi.Assertion; import org.apache.neethi.Policy; import org.apache.neethi.PolicyEngine; import org.apache.neethi.PolicyComponent; @@ -40,6 +41,8 @@ import org.apache.rampart.policy.Rampart import org.apache.rampart.policy.model.RampartConfig; import org.apache.rampart.util.Axis2Util; import org.apache.rampart.util.RampartUtil; +import org.apache.ws.secpolicy.SP11Constants; +import org.apache.ws.secpolicy.SP12Constants; import org.apache.ws.secpolicy.WSSPolicyException; import org.apache.ws.security.SOAPConstants; import org.apache.ws.security.WSConstants; @@ -56,10 +59,7 @@ import org.apache.ws.security.util.WSSec import org.opensaml.SAMLAssertion; import org.w3c.dom.Document; -import java.util.Date; -import java.util.List; -import java.util.Vector; -import java.util.ArrayList; +import java.util.*; public class RampartMessageData { @@ -135,9 +135,9 @@ public class RampartMessageData { * RahasConstants.VERSION_05_12 */ -private int wstVersion = RahasConstants.VERSION_05_02; +private int wstVersion = RahasConstants.VERSION_05_12; -private int secConvVersion = ConversationConstants.DEFAULT_VERSION; +private int secConvVersion = ConversationConstants.VERSION_05_12; /* * IssuedTokens or SecurityContextTokens can be used @@ -166,16 +166,6 @@ public class RampartMessageData { this.msgContext = msgCtx; try { - -//Extract known properties from the msgCtx - -if(msgCtx.getProperty(KEY_WST_VERSION) != null) { -this.wstVersion = TrustUtil.getWSTVersion((String)msgCtx.getProperty(KEY_WST_VERSION)); -} - -if(msgCtx.getProperty(KEY_WSSC_VERSION) != null) { -this.secConvVersion = TrustUtil.getWSTVersion((String)msgCtx.getProperty(KEY_WSSC_VERSION)); -} // First obtain the axis service as we have to do a null check, there can be situations // where Axis Service is null @@ -193,12 +183,12 @@ public class RampartMessageData { msgCtx.getAxisService().addParameter(clientSideParam); } } - + if(msgCtx.getProperty(KEY_RAMPART_POLICY) != null) { this.servicePolicy = (Policy)msgCtx.getProperty(KEY_RAMPART_POLICY); } - - + + // Checking which flow we are in int flow = msgCtx.getFLOW(); @@ -262,8 +252,11 @@ public class RampartMessageData { //Process policy and build policy data this.policyData = RampartPolicyBuilder.build(it); + +//Set the version + setWSSecurityVersions(this.policyData.getWebServiceSecurityPolicyNS()); } - +
svn commit: r1073767 - in /axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart: policy/sc-4.xml policy/sc-5.xml policy/sc-6.xml services-sc-4.xml services-sc-5.
Author: thilinamb Date: Wed Feb 23 15:08:31 2011 New Revision: 1073767 URL: http://svn.apache.org/viewvc?rev=1073767&view=rev Log: Applying the patch provided by AmilaJ for RAMPART-299. Adding the sample policy files. Added: axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-4.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-5.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-6.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/services-sc-4.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/services-sc-5.xml axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/services-sc-6.xml Added: axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-4.xml URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-4.xml?rev=1073767&view=auto == --- axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-4.xml (added) +++ axis/axis2/java/rampart/branches/1_6/modules/rampart-integration/src/test/resources/rampart/policy/sc-4.xml Wed Feb 23 15:08:31 2011 @@ -0,0 +1,123 @@ +http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";> + + + http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";> + + + + http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient";> + + + + http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"; xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy";> + + + http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702";> + + + + http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/AlwaysToRecipient";> + + + + + + + + + http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/IncludeToken/Never";> + + +
svn commit: r1074043 - in /axis/axis2/java/rampart/trunk/modules: rampart-core/src/main/java/org/apache/rampart/RampartEngine.java rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java ramp
Author: thilinamb Date: Thu Feb 24 05:05:24 2011 New Revision: 1074043 URL: http://svn.apache.org/viewvc?rev=1074043&view=rev Log: Fixing RAMPART-317 : Fixing an error when handling bearer subject confirmation. Modified: axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/TrustUtil.java Modified: axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java?rev=1074043&r1=1074042&r2=1074043&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java Thu Feb 24 05:05:24 2011 @@ -30,8 +30,10 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.rahas.RahasConstants; import org.apache.rahas.Token; import org.apache.rahas.TokenStorage; +import org.apache.rahas.TrustUtil; import org.apache.rahas.impl.util.SAML2KeyInfo; import org.apache.rahas.impl.util.SAML2Utils; import org.apache.rampart.policy.RampartPolicyData; @@ -188,8 +190,15 @@ public class RampartEngine { // If this is a SAML2.0 assertion if (wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION) instanceof Assertion) { +final Assertion assertion = (Assertion) wser.get( +WSSecurityEngineResult.TAG_SAML_ASSERTION); + +// if the subject confirmation method is Bearer, do not try to get the KeyInfo + if(TrustUtil.getSAML2SubjectConfirmationMethod(assertion).equals( + RahasConstants.SAML20_SUBJECT_CONFIRMATION_BEARER)){ +break; +} -final Assertion assertion = (Assertion) wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION); String id = assertion.getID(); Subject subject = assertion.getSubject(); @@ -236,10 +245,15 @@ public class RampartEngine { } //if this is a SAML1.1 assertion else { -final SAMLAssertion assertion = +final SAMLAssertion assertion = ((SAMLAssertion) wser.get( +WSSecurityEngineResult.TAG_SAML_ASSERTION)); + +// if the subject confirmation method is Bearer, do not try to get the KeyInfo + if(RahasConstants.SAML11_SUBJECT_CONFIRMATION_BEARER.equals( + TrustUtil.getSAML11SubjectConfirmationMethod(assertion))){ +break; +} -((SAMLAssertion) wser - .get(WSSecurityEngineResult.TAG_SAML_ASSERTION)); String id = assertion.getId(); Date created = assertion.getNotBefore(); Date expires = assertion.getNotOnOrAfter(); Modified: axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java?rev=1074043&r1=1074042&r2=1074043&view=diff == --- axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java (original) +++ axis/axis2/java/rampart/trunk/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java Thu Feb 24 05:05:24 2011 @@ -132,4 +132,13 @@ public class RahasConstants { //Constants required for SAML2 assertion generation public final static String X509_CERT ="X509Certificate"; public final static String USERNAME = "username"; + +//Constants required for SubjectConfirmation methods +public static final String SAML11_SUBJECT_CONFIRMATION_HOK = "urn:oasis:names:tc:SAML:1.0:cm:" + + "holder-of-key"; +public static final String SAML11_SUBJECT_CONFIRMATION_BEARER = "urn:oasis:names:tc:SAML:1.0:cm:bearer"; + +public static final String SAML20_SUBJECT_CONFIRMATION_HOK = "urn:oasis:names:tc:SAML:2.0:cm:holder-of-key"; + +public static final String SAML20_SUBJECT_CONFIRMATION_BEARER = "urn:oasis:names:tc:SAML:2.0:cm:beare
svn commit: r1074044 - in /axis/axis2/java/rampart/branches/1_6/modules: rampart-core/src/main/java/org/apache/rampart/ rampart-trust/src/main/java/org/apache/rahas/
Author: thilinamb Date: Thu Feb 24 05:05:59 2011 New Revision: 1074044 URL: http://svn.apache.org/viewvc?rev=1074044&view=rev Log: Fixing RAMPART-317 : Fixing an error when handling SAML tokens with bearer subject confirmation. Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/TrustUtil.java Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java?rev=1074044&r1=1074043&r2=1074044&view=diff == --- axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java (original) +++ axis/axis2/java/rampart/branches/1_6/modules/rampart-core/src/main/java/org/apache/rampart/RampartEngine.java Thu Feb 24 05:05:59 2011 @@ -30,8 +30,10 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; +import org.apache.rahas.RahasConstants; import org.apache.rahas.Token; import org.apache.rahas.TokenStorage; +import org.apache.rahas.TrustUtil; import org.apache.rahas.impl.util.SAML2KeyInfo; import org.apache.rahas.impl.util.SAML2Utils; import org.apache.rampart.policy.RampartPolicyData; @@ -188,8 +190,15 @@ public class RampartEngine { // If this is a SAML2.0 assertion if (wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION) instanceof Assertion) { +final Assertion assertion = (Assertion) wser.get( +WSSecurityEngineResult.TAG_SAML_ASSERTION); + +// if the subject confirmation method is Bearer, do not try to get the KeyInfo + if(TrustUtil.getSAML2SubjectConfirmationMethod(assertion).equals( + RahasConstants.SAML20_SUBJECT_CONFIRMATION_BEARER)){ +break; +} -final Assertion assertion = (Assertion) wser.get(WSSecurityEngineResult.TAG_SAML_ASSERTION); String id = assertion.getID(); Subject subject = assertion.getSubject(); @@ -236,10 +245,15 @@ public class RampartEngine { } //if this is a SAML1.1 assertion else { -final SAMLAssertion assertion = +final SAMLAssertion assertion = ((SAMLAssertion) wser.get( +WSSecurityEngineResult.TAG_SAML_ASSERTION)); + +// if the subject confirmation method is Bearer, do not try to get the KeyInfo + if(RahasConstants.SAML11_SUBJECT_CONFIRMATION_BEARER.equals( + TrustUtil.getSAML11SubjectConfirmationMethod(assertion))){ +break; +} -((SAMLAssertion) wser - .get(WSSecurityEngineResult.TAG_SAML_ASSERTION)); String id = assertion.getId(); Date created = assertion.getNotBefore(); Date expires = assertion.getNotOnOrAfter(); Modified: axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java?rev=1074044&r1=1074043&r2=1074044&view=diff == --- axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java (original) +++ axis/axis2/java/rampart/branches/1_6/modules/rampart-trust/src/main/java/org/apache/rahas/RahasConstants.java Thu Feb 24 05:05:59 2011 @@ -132,4 +132,13 @@ public class RahasConstants { //Constants required for SAML2 assertion generation public final static String X509_CERT ="X509Certificate"; public final static String USERNAME = "username"; + +//Constants required for SubjectConfirmation methods +public static final String SAML11_SUBJECT_CONFIRMATION_HOK = "urn:oasis:names:tc:SAML:1.0:cm:" + + "holder-of-key"; +public static final String SAML11_SUBJECT_CONFIRMATION_BEARER = "urn:oasis:names:tc:SAML:1.0:cm:bearer"; + +public static final String SAML20_SUBJECT_CONFIRMATION_HOK = "urn:oasis:names:tc:SAML:2.0:cm:holder-of-key"; + +public