You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by ve...@apache.org on 2017/01/29 15:02:13 UTC

svn commit: r1780802 [2/3] - in /axis/axis2/java/rampart/branches/RAMPART-252: ./ modules/distribution/ modules/documentation/src/site/ modules/documentation/src/site/resources/ modules/documentation/src/site/resources/css/ modules/documentation/src/si...

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java Sun Jan 29 15:02:12 2017
@@ -107,6 +107,8 @@ public class RampartPolicyData {
     
     private boolean encryptAttachmentsOptional;
 
+    private boolean signAllHeaders;
+
     private Vector signedParts = new Vector();
 
     private Vector signedElements = new Vector();
@@ -926,6 +928,14 @@ public class RampartPolicyData {
     public MTOMAssertion getMTOMAssertion(){
     	return mtomAssertion;
     }
+
+    public boolean isSignAllHeaders() {
+        return signAllHeaders;
+    }
+
+    public void setSignAllHeaders(boolean signAllHeaders) {
+        this.signAllHeaders = signAllHeaders;
+    }
     
     public boolean isMTOMSerialize(){
     	if(mtomAssertion == null){

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/builders/RampartConfigBuilder.java Sun Jan 29 15:02:12 2017
@@ -103,6 +103,13 @@ public class RampartConfigBuilder implem
         }
         
         childElement = element.getFirstChildWithName(new QName(
+                RampartConfig.NS, RampartConfig.DEC_CRYPTO_LN));
+        if (childElement != null) {
+            rampartConfig.setDecCryptoConfig((CryptoConfig) factory
+                    .build(childElement.getFirstElement()));
+        }
+        
+        childElement = element.getFirstChildWithName(new QName(
                 RampartConfig.NS, RampartConfig.STS_CRYPTO_LN));
         if (childElement != null) {
             rampartConfig.setStsCryptoConfig((CryptoConfig) factory
@@ -133,6 +140,12 @@ public class RampartConfigBuilder implem
             rampartConfig.setNonceLifeTime(childElement.getText().trim());
         }
         
+        childElement = element.getFirstChildWithName(new QName(
+                RampartConfig.NS, RampartConfig.TOKEN_STORE_CLASS_LN));
+        if (childElement != null) {
+            rampartConfig.setTokenStoreClass(childElement.getText().trim());
+        }
+        
 		childElement = element.getFirstChildWithName(new QName(
                 RampartConfig.NS, RampartConfig.OPTIMISE_PARTS));
         if (childElement != null) {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/OptimizePartsConfig.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/OptimizePartsConfig.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/OptimizePartsConfig.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/policy/model/OptimizePartsConfig.java Sun Jan 29 15:02:12 2017
@@ -100,6 +100,7 @@ public class OptimizePartsConfig impleme
         	  while(ite.hasNext()){
         		  String strPrefix = (String)ite.next();
         		  String strURI = (String) namespaces.get(strPrefix);
+        		  writer.writeStartElement(RampartConfig.NS, NAMESPACE_LN);
         		  writer.writeAttribute(URI_ATTR , strURI);
         		  writer.writeAttribute(PREFIX_ATTR, strPrefix);
         		  writer.writeEndElement();

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/Axis2Util.java Sun Jan 29 15:02:12 2017
@@ -163,7 +163,13 @@ public class Axis2Util {
 		}
 	}
 
-	
+	/**
+	 * Builds a SOAPEnvelope from DOM Document.
+	 * @param doc - The dom document that contains a SOAP message
+	 * @param useDoom
+	 * @return
+	 * @throws WSSecurityException
+	 */
 	public static SOAPEnvelope getSOAPEnvelopeFromDOMDocument(Document doc, boolean useDoom)
             throws WSSecurityException {
 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/HandlerParameterDecoder.java Sun Jan 29 15:02:12 2017
@@ -149,7 +149,7 @@ public class HandlerParameterDecoder {
 			}
 
 			msgCtx.setProperty(WSSHandlerConstants.SENDER_REPEAT_COUNT,
-					new Integer(repetitionCount));
+					Integer.valueOf(repetitionCount));
 		}
 	}
     

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java Sun Jan 29 15:02:12 2017
@@ -438,18 +438,18 @@ public class RampartUtil {
      */
     public static String processIssuerAddress(OMElement issuerAddress) 
         throws RampartException {
-        if(issuerAddress != null && issuerAddress.getText() != null && 
-                !"".equals(issuerAddress.getText())) {
-            return issuerAddress.getText().trim();
-        } else {
-            if(issuerAddress != null) {
-                throw new RampartException("invalidIssuerAddress",
-                    new String[] { issuerAddress.toString() });
-            } else {
-                throw new RampartException("invalidIssuerAddress",
-                        new String[] { "Issuer address null" });
-            }
+
+    	if(issuerAddress == null){
+    		throw new RampartException("invalidIssuerAddress", 
+    		                           new String[] { "Issuer address null" });
+    	}
+    	
+    	if(issuerAddress.getText() == null || "".equals(issuerAddress.getText())) {
+    		throw new RampartException("invalidIssuerAddress", 
+    		                           new String[] { issuerAddress.toString() });
         }
+
+    	return issuerAddress.getText().trim();
     }
     
     /**
@@ -881,6 +881,19 @@ public class RampartUtil {
 	public static Vector getSignedParts(RampartMessageData rmd) {
 		RampartPolicyData rpd = rmd.getPolicyData();
 		SOAPEnvelope envelope = rmd.getMsgContext().getEnvelope();
+
+        //"signAllHeaders" indicates that all the headers should be signed.
+        if (rpd.isSignAllHeaders()) {
+            Iterator childHeaders = envelope.getHeader().getChildElements();
+            while (childHeaders.hasNext()) {
+               OMElement hb = (OMElement) childHeaders.next();
+                if (!(hb.getLocalName().equals(WSConstants.WSSE_LN)
+                        && hb.getNamespace().getNamespaceURI().equals(WSConstants.WSSE_NS))) {
+                    rpd.addSignedPart(hb.getNamespace().getNamespaceURI(),hb.getLocalName());
+                }
+           }
+        }
+
 		return getPartsAndElements(true, envelope, rpd.isSignBody()
 				&& !rpd.isSignBodyOptional(), rpd.getSignedParts(), rpd
 				.getSignedElements(), rpd.getDeclaredNamespaces());
@@ -1151,9 +1164,12 @@ public class RampartUtil {
      * @return
      */
     public static boolean checkRequiredElements(SOAPEnvelope envelope, HashMap decNamespaces, String expression ) {
+
+        // The XPath expression must be evaluated against the SOAP header
+        // http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826519
+        SOAPHeader header = envelope.getHeader();
         
-        
-        Set namespaces = findAllPrefixNamespaces(envelope, decNamespaces);
+        Set namespaces = findAllPrefixNamespaces(header, decNamespaces);
 
         try {
                         XPath xp = new AXIOMXPath(expression);
@@ -1165,7 +1181,7 @@ public class RampartUtil {
                                 xp.addNamespace(tmpNs.getPrefix(), tmpNs.getNamespaceURI());
                         }
                         
-                        List selectedNodes = xp.selectNodes(envelope);
+                        List selectedNodes = xp.selectNodes(header);
                         
                         if (selectedNodes.size() == 0 ) {
                             return false;
@@ -1288,10 +1304,16 @@ public class RampartUtil {
      * the WSS11 and WSS10 assertions
      */
     
-    public static void setKeyIdentifierType(RampartPolicyData rpd, WSSecBase secBase,org.apache.ws.secpolicy.model.Token token) {
-		
-    	if (token.getInclusion() == SPConstants.INCLUDE_TOKEN_NEVER) {
-			
+    public static void setKeyIdentifierType(RampartMessageData rmd, WSSecBase secBase,org.apache.ws.secpolicy.model.Token token) {
+
+        // Use a reference rather than the binary security token if: the policy never allows the token to be
+        // included; or this is the recipient and the token should only be included in requests; or this is
+        // the initiator and the token should only be included in responses.
+        final boolean useReference = token.getInclusion() == SPConstants.INCLUDE_TOKEN_NEVER
+                                     || !rmd.isInitiator() && token.getInclusion() == SPConstants.INCLUDE_TOEKN_ALWAYS_TO_RECIPIENT
+                                     || rmd.isInitiator() && token.getInclusion() == SPConstants.INCLUDE_TOEKN_ALWAYS_TO_INITIATOR;
+        if (useReference) {
+
     		boolean tokenTypeSet = false;
     		
     		if(token instanceof X509Token) {
@@ -1310,6 +1332,7 @@ public class RampartUtil {
     		} 
     		
     		if (!tokenTypeSet) {
+                final RampartPolicyData rpd = rmd.getPolicyData();
 	    		Wss10 wss = rpd.getWss11();
 				if (wss == null) {
 					wss = rpd.getWss10();
@@ -1555,7 +1578,26 @@ public class RampartUtil {
             if (supportingTokens != null && supportingTokens.getTokens().size() != 0) {
                 return true;
             }
-        
+       
+            supportingTokens = rpd.getEncryptedSupportingTokens();
+            if (supportingTokens != null && supportingTokens.getTokens().size() != 0) {
+                return true;
+            }
+            
+            supportingTokens = rpd.getSignedEncryptedSupportingTokens();
+            if (supportingTokens != null && supportingTokens.getTokens().size() != 0) {
+                return true;
+            }
+            
+            supportingTokens = rpd.getEndorsingEncryptedSupportingTokens();
+            if (supportingTokens != null && supportingTokens.getTokens().size() != 0) {
+                return true;
+            }
+            
+            supportingTokens = rpd.getSignedEndorsingEncryptedSupportingTokens();
+            if (supportingTokens != null && supportingTokens.getTokens().size() != 0) {
+                return true;
+            }
         }
         
         return false;
@@ -1731,4 +1773,4 @@ public class RampartUtil {
     }
 
 
-}
\ No newline at end of file
+}

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/pom.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/pom.xml?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/pom.xml (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/pom.xml Sun Jan 29 15:02:12 2017
@@ -48,7 +48,7 @@
                                 <artifactItem>
                                     <groupId>org.apache.axis2</groupId>
                                     <artifactId>addressing</artifactId>
-                                    <version>${addressing.mar.version}</version>
+                                    <version>${axis2.version}</version>
                                     <type>mar</type>
                                     <overWrite>true</overWrite>
                                     <outputDirectory>target/artifacts</outputDirectory>
@@ -119,9 +119,9 @@
                         <phase>process-test-resources</phase>
                         <configuration>
                             <tasks>
-                                <property name="addressing.mar" value="addressing-${addressing.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-classes/modules/addressing-${addressing.mar.version}.mar"/>
+                                <property name="addressing.mar" value="addressing-${axis2.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-classes/modules/addressing-${axis2.version}.mar"/>
                                 <copy file="target/artifacts/rampart-${rampart.mar.version}.mar"
                                       tofile="target/test-classes/modules/rampart-${rampart.mar.version}.mar"/>
 
@@ -145,8 +145,8 @@
                                       tofile="target/test-resources/rampart_client_repo/modules/rampart-${rampart.mar.version}.mar"/>
                                 <copy file="target/artifacts/rahas-${rahas.mar.version}.mar"
                                       tofile="target/test-resources/rampart_client_repo/modules/rahas-${rahas.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rampart_client_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rampart_client_repo/modules/addressing-${axis2.version}.mar"/>
                                 <mkdir dir="target/test-resources/rampart_service_repo"/>
                                 <mkdir dir="target/test-resources/rampart_service_repo/conf"/>
                                 <mkdir dir="target/test-resources/rampart_service_repo/services"/>
@@ -155,8 +155,8 @@
                                       tofile="target/test-resources/rampart_service_repo/modules/rampart-${rampart.mar.version}.mar"/>
                                 <copy file="target/artifacts/rahas-${rahas.mar.version}.mar"
                                       tofile="target/test-resources/rampart_service_repo/modules/rahas-${rahas.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rampart_service_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rampart_service_repo/modules/addressing-${axis2.version}.mar"/>
 
                                 <!-- Service 1 -->
                                 <copy overwrite="yes"
@@ -332,6 +332,12 @@
                                       tofile="target/temp-ramp/META-INF/services.xml"/>
                                 <jar jarfile="target/test-resources/rampart_service_repo/services/SecureService29.aar"
                                      basedir="target/temp-ramp"/>
+                                <!-- Service 30 -->
+                                <copy overwrite="yes"
+                                      file="src/test/resources/rampart/services-30.xml"
+                                      tofile="target/temp-ramp/META-INF/services.xml"/>
+                                <jar jarfile="target/test-resources/rampart_service_repo/services/SecureService30.aar"
+                                     basedir="target/temp-ramp"/>
 
 
                                 <!-- Service SC-1 -->
@@ -386,8 +392,8 @@
                                 <mkdir dir="target/test-resources/rahas_client_repo"/>
                                 <mkdir dir="target/test-resources/rahas_client_repo/conf"/>
                                 <mkdir dir="target/test-resources/rahas_client_repo/modules"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rahas_client_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rahas_client_repo/modules/addressing-${axis2.version}.mar"/>
                                 <copy file="target/artifacts/rampart-${rampart.mar.version}.mar"
                                       tofile="target/test-resources/rahas_client_repo/modules/rampart-${rampart.mar.version}.mar"/>
                                 <!-- Rahas Test1: SAML Token test -->
@@ -399,8 +405,8 @@
                                       tofile="target/test-resources/rahas_service_repo_1/modules/rampart-${rampart.mar.version}.mar"/>
                                 <copy file="target/artifacts/rahas-${rahas.mar.version}.mar"
                                       tofile="target/test-resources/rahas_service_repo_1/modules/rahas-${rahas.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rahas_service_repo_1/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rahas_service_repo_1/modules/addressing-${axis2.version}.mar"/>
                                 <!-- copy the services.xml and create the aar -->
                                 <copy overwrite="yes"
                                       file="src/test/resources/rahas/s1-services.xml"
@@ -419,8 +425,8 @@
                                       tofile="target/test-resources/rahas_service_repo_3/modules/rampart-${rampart.mar.version}.mar"/>
                                 <copy file="target/artifacts/rahas-${rahas.mar.version}.mar"
                                       tofile="target/test-resources/rahas_service_repo_3/modules/rahas-${rahas.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rahas_service_repo_3/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rahas_service_repo_3/modules/addressing-${axis2.version}.mar"/>
                                 <!-- copy the services.xml and create the aar -->
                                 <copy overwrite="yes"
                                       file="src/test/resources/rahas/s3-services.xml"
@@ -435,8 +441,8 @@
                                 <mkdir dir="target/test-resources/default_security_client_repo/modules"/>
                                 <copy file="target/artifacts/rampart-${rampart.mar.version}.mar"
                                       tofile="target/test-resources/default_security_client_repo/modules/rampart-${rampart.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/default_security_client_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/default_security_client_repo/modules/addressing-${axis2.version}.mar"/>
                                 <copy file="src/test/resources/conf/axis2.xml"
                                       tofile="target/test-resources/default_security_client_repo/conf/axis2.xml"/>
                                 <!--
@@ -450,8 +456,8 @@
                                       tofile="target/test-resources/rahas_service_repo_5/modules/rampart-${rampart.mar.version}.mar"/>
                                 <copy file="target/artifacts/rahas-${rahas.mar.version}.mar"
                                       tofile="target/test-resources/rahas_service_repo_5/modules/rahas-${rahas.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/rahas_service_repo_5/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/rahas_service_repo_5/modules/addressing-${axis2.version}.mar"/>
                                 <!-- copy the services.xml and create the aar -->
                                 <copy overwrite="yes"
                                       file="src/test/resources/rahas/s5-services.xml"
@@ -698,15 +704,15 @@
                                       tofile="target/test-resources/complete_client_repo/conf/axis2.xml"/>
                                 <copy file="target/artifacts/rampart-${rampart.mar.version}.mar"
                                       tofile="target/test-resources/complete_client_repo/modules/rampart-${rampart.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/complete_client_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/complete_client_repo/modules/addressing-${axis2.version}.mar"/>
                                 <!-- Test with addressing and MTOMservice repository-->
                                 <copy file="src/test/resources/security/complete.service.axis2.xml"
                                       tofile="target/test-resources/complete_service_repo/conf/axis2.xml"/>
                                 <copy file="target/artifacts/rampart-${rampart.mar.version}.mar"
                                       tofile="target/test-resources/complete_service_repo/modules/rampart-${rampart.mar.version}.mar"/>
-                                <copy file="target/artifacts/addressing-${addressing.mar.version}.mar"
-                                      tofile="target/test-resources/complete_service_repo/modules/addressing-${addressing.mar.version}.mar"/>
+                                <copy file="target/artifacts/addressing-${axis2.version}.mar"
+                                      tofile="target/test-resources/complete_service_repo/modules/addressing-${axis2.version}.mar"/>
                                 <copy file="src/test/resources/security/complete.service.xml"
                                       tofile="target/temp-interop/META-INF/services.xml"
                                       overwrite="true"/>

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-integration/src/test/java/org/apache/rampart/RampartTest.java Sun Jan 29 15:02:12 2017
@@ -77,7 +77,7 @@ public class RampartTest extends TestCas
                         "Unlimited Strength Jurisdiction Policy !!!");
             }
             
-            for (int i = 1; i <= 29; i++) { //<-The number of tests we have
+            for (int i = 1; i <= 30; i++) { //<-The number of tests we have
                 if(!basic256Supported && (i == 3 || i == 4 || i == 5)) {
                     //Skip the Basic256 tests
                     continue;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/AbstractSecurityAssertion.java Sun Jan 29 15:02:12 2017
@@ -25,7 +25,7 @@ public abstract class AbstractSecurityAs
 
     private boolean isOptional;
     
-    private boolean normalized = false; 
+    private boolean normalized = true; 
     
     protected int version;
 
@@ -50,7 +50,7 @@ public abstract class AbstractSecurityAs
     }
     
     public boolean isNormalized() {
-        return true;
+        return this.normalized;
     }
 
     public PolicyComponent normalize() {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java Sun Jan 29 15:02:12 2017
@@ -122,9 +122,9 @@ public class SignedEncryptedElements ext
             Iterator<String> namespaces = declaredNamespaces.keySet().iterator();
 
             while(namespaces.hasNext()) {
-                prefix = (String) namespaces.next();
-                namespaceURI = (String) declaredNamespaces.get(prefix);
-                writer.writeNamespace(prefix,namespaceURI);
+            	final String declaredPrefix = namespaces.next();
+            	final String declaredNamespaceURI = (String) declaredNamespaces.get(declaredPrefix);
+                writer.writeNamespace(declaredPrefix,declaredNamespaceURI); 
             }
 
             writer.writeCharacters(xpathExpression);

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedParts.java Sun Jan 29 15:02:12 2017
@@ -37,6 +37,16 @@ public class SignedEncryptedParts extend
     private ArrayList headers = new ArrayList();
     
     private boolean signedParts;
+
+    private boolean signAllHeaders;
+
+    public boolean isSignAllHeaders() {
+        return signAllHeaders;
+    }
+
+    public void setSignAllHeaders(boolean signAllHeaders) {
+        this.signAllHeaders = signAllHeaders;
+    }
     
     public SignedEncryptedParts(boolean signedParts, int version) {
         this.signedParts = signedParts;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/TransportBinding.java Sun Jan 29 15:02:12 2017
@@ -37,9 +37,12 @@ public class TransportBinding extends Bi
     private TransportToken transportToken;
 
     private List transportBindings;
+    
+    private boolean tokenProtection;
 
     public TransportBinding(int version) {
         super(version);
+        this.tokenProtection = false;
     }
     /**
      * @return Returns the transportToken.
@@ -55,6 +58,21 @@ public class TransportBinding extends Bi
     public void setTransportToken(TransportToken transportToken) {
         this.transportToken = transportToken;
     }
+    
+    /**
+     * @return Returns the tokenProtection.
+     */
+    public boolean isTokenProtection() {
+        return tokenProtection;
+    }
+
+    /**
+     * @param tokenProtection The tokenProtection to set.
+     */
+    public void setTokenProtection(boolean tokenProtection) {
+        this.tokenProtection = tokenProtection;
+    }
+    
 
     public List getConfigurations() {
         return transportBindings;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedElementsBuilder.java Sun Jan 29 15:02:12 2017
@@ -42,8 +42,8 @@ public class EncryptedElementsBuilder im
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedElements.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			signedEncryptedElements.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
         
         for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java Sun Jan 29 15:02:12 2017
@@ -52,8 +52,8 @@ public class EncryptedPartsBuilder imple
 		 OMAttribute isOptional = element
 				.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedParts.setOptional((new Boolean(isOptional
-					.getAttributeValue()).booleanValue()));
+			signedEncryptedParts.setOptional(Boolean.valueOf(isOptional
+					.getAttributeValue()).booleanValue());
 		}
         
         return signedEncryptedParts;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedElementsBuilder.java Sun Jan 29 15:02:12 2017
@@ -43,8 +43,8 @@ public class SignedElementsBuilder imple
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedElements.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			signedEncryptedElements.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
         
         for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SignedPartsBuilder.java Sun Jan 29 15:02:12 2017
@@ -36,13 +36,19 @@ public class SignedPartsBuilder implemen
         SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(true, SPConstants.SP_V11);
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedParts.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			signedEncryptedParts.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
         for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {
             processElement((OMElement) iterator.next(), signedEncryptedParts);
         }
-        
+
+        // Presense of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
+        if(!element.getChildren().hasNext()){
+            signedEncryptedParts.setBody(true);
+            signedEncryptedParts.setSignAllHeaders(true);
+        }
+
         return signedEncryptedParts;
     }
        

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/SupportingTokensBuilder.java Sun Jan 29 15:02:12 2017
@@ -55,8 +55,8 @@ public class SupportingTokensBuilder imp
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			supportingToken.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			supportingToken.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
    
         Policy policy = PolicyEngine.getPolicy(element.getFirstElement());

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/UsernameTokenBuilder.java Sun Jan 29 15:02:12 2017
@@ -47,8 +47,8 @@ public class UsernameTokenBuilder implem
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			usernameToken.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			usernameToken.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		} 
         
         OMElement policyElement = element.getFirstElement();

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/X509TokenBuilder.java Sun Jan 29 15:02:12 2017
@@ -63,8 +63,8 @@ public class X509TokenBuilder implements
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			x509Token.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			x509Token.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
    
 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedElementsBuilder.java Sun Jan 29 15:02:12 2017
@@ -47,8 +47,8 @@ public class EncryptedElementsBuilder im
     	OMAttribute isOptional = element
 				.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedElements.setOptional((new Boolean(isOptional
-					.getAttributeValue()).booleanValue()));
+			signedEncryptedElements.setOptional(Boolean.valueOf(isOptional
+					.getAttributeValue()).booleanValue());
 		}
         
         return signedEncryptedElements;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java Sun Jan 29 15:02:12 2017
@@ -52,8 +52,8 @@ public class EncryptedPartsBuilder imple
 		OMAttribute isOptional = element
 				.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedParts.setOptional((new Boolean(isOptional
-					.getAttributeValue()).booleanValue()));
+			signedEncryptedParts.setOptional(Boolean.valueOf(isOptional
+					.getAttributeValue()).booleanValue());
 		}
         
         return signedEncryptedParts;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedElementsBuilder.java Sun Jan 29 15:02:12 2017
@@ -44,8 +44,8 @@ public class SignedElementsBuilder imple
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedElements.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			signedEncryptedElements.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
         
         for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SignedPartsBuilder.java Sun Jan 29 15:02:12 2017
@@ -41,9 +41,15 @@ public class SignedPartsBuilder implemen
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			signedEncryptedParts.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			signedEncryptedParts.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
+
+        //presense of <sp:SignedParts/> enforces the requirement for sign body and all the header blocks
+        if(!element.getChildren().hasNext()){
+            signedEncryptedParts.setBody(true);
+            signedEncryptedParts.setSignAllHeaders(true);
+        }
         
         return signedEncryptedParts;
     }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/SupportingTokensBuilder.java Sun Jan 29 15:02:12 2017
@@ -71,8 +71,8 @@ public class SupportingTokensBuilder imp
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			supportingToken.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			supportingToken.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
 
         Policy policy = PolicyEngine.getPolicy(element.getFirstElement());

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/TransportBindingBuilder.java Sun Jan 29 15:02:12 2017
@@ -77,6 +77,9 @@ public class TransportBindingBuilder imp
             } else if (name.equals(SP12Constants.LAYOUT)) {
                 parent.setLayout((Layout) primitive);
                  
+            } else if (name.equals(SP12Constants.PROTECT_TOKENS)) {
+                parent.setTokenProtection(true);
+                 
             } else if (name.equals(SP12Constants.SIGNED_SUPPORTING_TOKENS)) {
                 parent.setSignedSupportingToken((SupportingToken) primitive);
                 

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/UsernameTokenBuilder.java Sun Jan 29 15:02:12 2017
@@ -47,8 +47,8 @@ public class UsernameTokenBuilder implem
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			usernameToken.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			usernameToken.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
         
         OMElement policyElement = element.getFirstElement();

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/X509TokenBuilder.java Sun Jan 29 15:02:12 2017
@@ -62,8 +62,8 @@ public class X509TokenBuilder implements
         
         OMAttribute isOptional = element.getAttribute(Constants.Q_ELEM_OPTIONAL_ATTR);
 		if (isOptional != null) {
-			x509Token.setOptional((new Boolean(isOptional.getAttributeValue())
-					.booleanValue()));
+			x509Token.setOptional(Boolean.valueOf(isOptional.getAttributeValue())
+					.booleanValue());
 		}
 
         if (policyElement != null) {

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/README.txt
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/README.txt?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/README.txt (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/README.txt Sun Jan 29 15:02:12 2017
@@ -15,3 +15,7 @@ Please use Apache Ant with the build.xml
 and mars to required places.
 
     - Please copy log4j.jar to AXIS2_HOME/lib directory before trying out samples.
+
+    - Please follow the instructions on endorsing the default JAXP implementation
+      available in README.txt of this distribution before invoking 
+      Sample 08.(Issuing a SAML 2.0 Token)

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/client.jks
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/client.jks?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
Binary files - no diff available.

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/service.jks
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/service.jks?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
Binary files - no diff available.

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/sts.jks
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/keys/sts.jks?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
Binary files - no diff available.

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/build.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/build.xml?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/build.xml (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/build.xml Sun Jan 29 15:02:12 2017
@@ -109,6 +109,17 @@
         <create.and.run.client sample.number="07"/>
     </target>
 
+    <!-- Sample Service 08 -->
+    <target name="service.08" if="env.AXIS2_HOME" depends="check.dependency">
+        <create.service.repo sample.number="08"/>
+    </target>
+
+    <!-- Sample Client 08 -->
+    <target name="client.08" if="env.AXIS2_HOME" depends="check.dependency">
+        <create.and.run.client sample.number="08"/>
+    </target>
+
+
 	<target name="clean">
 		<delete dir="build" />
 	</target>

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/policy.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/policy.xml?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/policy.xml (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/policy.xml Sun Jan 29 15:02:12 2017
@@ -58,9 +58,6 @@
 								<sp:RequireInternalReference/>
 							</wsp:Policy>
 						</sp:IssuedToken>
-						<sp:SignedParts>
-							<sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing"/>
-						</sp:SignedParts>
 					</wsp:Policy>
 		     </sp:SupportingTokens>
 			<sp:SignedParts>

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/services.xml
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/services.xml?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/services.xml (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/services.xml Sun Jan 29 15:02:12 2017
@@ -198,9 +198,6 @@
 								<sp:RequireInternalReference/>
 							</wsp:Policy>
 						</sp:IssuedToken>
-						<sp:SignedParts>
-							<sp:Header Name="To" Namespace="http://www.w3.org/2005/08/addressing"/>
-						</sp:SignedParts>
 					</wsp:Policy>
 		     </sp:SupportingTokens>
 			<sp:SignedParts>

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-samples/policy/sample06/src/org/apache/rampart/samples/policy/sample06/MexService.java Sun Jan 29 15:02:12 2017
@@ -1,3 +1,19 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.rampart.samples.policy.sample06;
 
 import java.io.File;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rahas/SimpleTokenStoreTest.java Sun Jan 29 15:02:12 2017
@@ -16,11 +16,19 @@
 
 package org.apache.rahas;
 
-import junit.framework.TestCase;
+import org.apache.axiom.om.OMAbstractFactory;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMFactory;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.axiom.om.impl.dom.DOOMAbstractFactory;
 
+import junit.framework.TestCase;
+
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
 import java.util.Date;
 
 public class SimpleTokenStoreTest extends TestCase {
@@ -30,8 +38,7 @@ public class SimpleTokenStoreTest extend
         try {
             store.add(getTestToken("id-1"));
         } catch (TrustException e) {
-            fail("Adding a new token to an empty store should not fail, " +
-                 "message : " + e.getMessage());
+            fail("Adding a new token to an empty store should not fail, " + "message : " + e.getMessage());
         }
         Token token = null;
         try {
@@ -40,8 +47,7 @@ public class SimpleTokenStoreTest extend
             fail("Adding an existing token must throw an exception");
         } catch (TrustException e) {
             assertEquals("Incorrect exception message",
-                         TrustException.getMessage("tokenAlreadyExists",
-                                                   new String[]{token.getId()}), e.getMessage());
+                         TrustException.getMessage("tokenAlreadyExists", new String[]{token.getId()}), e.getMessage());
         }
     }
 
@@ -76,9 +82,8 @@ public class SimpleTokenStoreTest extend
             store.update(token1);
             fail("An exception must be thrown at this point : noTokenToUpdate");
         } catch (TrustException e) {
-            assertEquals("Incorrect exception message", TrustException
-                    .getMessage("noTokenToUpdate", new String[]{token1
-                    .getId()}), e.getMessage());
+            assertEquals("Incorrect exception message",
+                         TrustException.getMessage("noTokenToUpdate", new String[]{token1.getId()}), e.getMessage());
         }
         try {
             store.add(token1);
@@ -133,11 +138,13 @@ public class SimpleTokenStoreTest extend
         }
     }
 
-    private Token getTestToken(String tokenId) throws TrustException {
+    private Token getTestToken(String tokenId)
+        throws TrustException {
         return getTestToken(tokenId, new Date());
     }
 
-    private Token getTestToken(String tokenId, Date expiry) throws TrustException {
+    private Token getTestToken(String tokenId, Date expiry)
+        throws TrustException {
         OMFactory factory = DOOMAbstractFactory.getOMFactory();
         OMElement tokenEle = factory.createOMElement("testToken", "", "");
         Token token = new Token(tokenId, tokenEle, new Date(), expiry);
@@ -147,4 +154,48 @@ public class SimpleTokenStoreTest extend
         token.setSecret("Top secret!".getBytes());
         return token;
     }
+
+    public void testSerialize()
+        throws Exception {
+        String fileName = "test.ser";
+
+        OMFactory factory = OMAbstractFactory.getOMFactory();
+        OMNamespace ns1 = factory.createOMNamespace("bar", "x");
+        OMElement elt11 = factory.createOMElement("foo1", ns1);
+
+        Token t = new Token("#1232122", elt11, new Date(), new Date());
+
+        SimpleTokenStore store = new SimpleTokenStore();
+        store.add(t);
+
+        FileOutputStream fos = null;
+        ObjectOutputStream out = null;
+
+        try {
+            fos = new FileOutputStream(fileName);
+            out = new ObjectOutputStream(fos);
+            out.writeObject(store);
+        } finally {
+            out.close();
+        }
+
+        SimpleTokenStore store2 = null;
+        FileInputStream fis = null;
+        ObjectInputStream in = null;
+        try {
+            fis = new FileInputStream(fileName);
+            in = new ObjectInputStream(fis);
+            store2 = (SimpleTokenStore)in.readObject();
+            in.close();
+        } catch (IOException ex) {
+            ex.printStackTrace();
+        } catch (ClassNotFoundException ex) {
+            ex.printStackTrace();
+        }
+
+        assertEquals(store.getToken("#1232122").getId(), store2.getToken("#1232122").getId());
+        assertEquals(store.getToken("#1232122").getCreated(), store2.getToken("#1232122").getCreated());
+
+    }
+
 }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/MessageBuilderTestBase.java Sun Jan 29 15:02:12 2017
@@ -19,6 +19,8 @@ package org.apache.rampart;
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.impl.builder.StAXOMBuilder;
 import org.apache.axiom.soap.SOAPEnvelope;
+import org.apache.axiom.soap.SOAP11Constants;
+import org.apache.axiom.soap.SOAP12Constants;
 import org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder;
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.client.Options;
@@ -63,8 +65,28 @@ public class MessageBuilderTestBase exte
      * @throws AxisFault
      */
     protected MessageContext getMsgCtx() throws Exception {
+        return initMsgCtxFromMessage("test-resources/policy/soapmessage.xml");
+    }
+
+    /**
+     * Return a message context initialized with a SOAP 1.2 message.
+     *
+     * @throws XMLStreamException
+     * @throws FactoryConfigurationError
+     * @throws AxisFault
+     */
+    protected MessageContext getMsgCtx12() throws Exception {
+        return initMsgCtxFromMessage("test-resources/policy/soapmessage.xml");
+    }
+
+    /**
+     * @throws XMLStreamException
+     * @throws FactoryConfigurationError
+     * @throws AxisFault
+     */
+    private MessageContext initMsgCtxFromMessage(String messageResource) throws Exception {
         MessageContext ctx = new MessageContext();
-        
+
         AxisConfiguration axisConfiguration = new AxisConfiguration();
         AxisService axisService = new AxisService("TestService");
         axisConfiguration.addService(axisService);
@@ -88,7 +110,7 @@ public class MessageBuilderTestBase exte
 
         XMLStreamReader reader =
                 XMLInputFactory.newInstance().
-                        createXMLStreamReader(new FileInputStream("test-resources/policy/soapmessage.xml"));
+                        createXMLStreamReader(new FileInputStream(messageResource));
         ctx.setEnvelope(new StAXSOAPModelBuilder(reader, null).getSOAPEnvelope());
         return ctx;
     }
@@ -121,4 +143,15 @@ public class MessageBuilderTestBase exte
         }
     }
 
+    public String getContentTypeForEnvelope(SOAPEnvelope env) {
+        String contentType = SOAP11Constants.SOAP_11_CONTENT_TYPE;  //default
+        if (SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(env.getNamespace().getNamespaceURI())) {
+            contentType = SOAP11Constants.SOAP_11_CONTENT_TYPE;
+        }
+        else if (SOAP12Constants.SOAP_ENVELOPE_NAMESPACE_URI.equals(env.getNamespace().getNamespaceURI())) {
+            contentType = SOAP12Constants.SOAP_12_CONTENT_TYPE;
+        }
+        return contentType;
+    }
+
 }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/NonceCacheTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/NonceCacheTest.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/NonceCacheTest.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/NonceCacheTest.java Sun Jan 29 15:02:12 2017
@@ -1,3 +1,17 @@
+/*
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 package org.apache.rampart;
 
 import junit.framework.TestCase;

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-tests/src/test/java/org/apache/rampart/RampartEngineTest.java Sun Jan 29 15:02:12 2017
@@ -18,14 +18,23 @@ package org.apache.rampart;
 
 import java.io.ByteArrayInputStream;
 import java.util.Vector;
+import java.util.ArrayList;
+import java.security.cert.X509Certificate;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.builder.SOAPBuilder;
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.engine.AxisEngine;
+import org.apache.axis2.namespace.Constants;
 import org.apache.neethi.Policy;
 import org.apache.rampart.util.Axis2Util;
+import org.apache.ws.security.WSConstants;
+import org.apache.ws.security.WSSecurityEngineResult;
+import org.apache.ws.security.handler.WSHandlerResult;
+import org.apache.ws.security.handler.WSHandlerConstants;
+
+import javax.xml.namespace.QName;
 
 public class RampartEngineTest extends MessageBuilderTestBase {
 
@@ -45,9 +54,10 @@ public class RampartEngineTest extends M
 
             RampartEngine engine = new RampartEngine();
             engine.process(ctx);
-        } catch (RampartException e) {
+        }
+        catch (RampartException e) {
             assertEquals("Expected rampart to complain about missing security header",
-                    "Missing wsse:Security header in request", e.getMessage());
+                         "Missing wsse:Security header in request", e.getMessage());
         }
     }
 
@@ -64,14 +74,74 @@ public class RampartEngineTest extends M
         builder.build(ctx);
 
         // Building the SOAP envelope from the OMElement
+        buildSOAPEnvelope(ctx);
+
+        RampartEngine engine = new RampartEngine();
+        Vector results = engine.process(ctx);
+
+        /*
+        The principle purpose of the test case is to verify that the above processes
+        without throwing an exception. However, perform a minimal amount of validation on the
+        results.
+        */
+        assertNotNull("RampartEngine returned null result", results);
+        //verify cert was stored
+        X509Certificate usedCert = null;
+        for (int i = 0; i < results.size(); i++) {
+            WSSecurityEngineResult wser = (WSSecurityEngineResult) results.get(i);
+            Integer action = (Integer) wser.get(WSSecurityEngineResult.TAG_ACTION);
+            if (action.intValue() == WSConstants.SIGN) {
+                //the result is for the signature, which contains the used certificate
+                usedCert = (X509Certificate) wser.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
+                break;
+            }
+        }
+        assertNotNull("Result of processing did not include a certificate", usedCert);
+    }
+
+    public void testValidSOAP12Message() throws Exception {
+
+        MessageContext ctx = getMsgCtx12();
+
+        String policyXml = "test-resources/policy/rampart-asymm-binding-6-3des-r15.xml";
+        Policy policy = loadPolicy(policyXml);
+
+        ctx.setProperty(RampartMessageData.KEY_RAMPART_POLICY, policy);
+
+        MessageBuilder builder = new MessageBuilder();
+        builder.build(ctx);
+
+        // Building the SOAP envelope from the OMElement
+        buildSOAPEnvelope(ctx);
+
+        RampartEngine engine = new RampartEngine();
+        Vector results = engine.process(ctx);
+
+        /*
+        The principle purpose of the test case is to verify that the above processes
+        without throwing an exception. However, perform a minimal amount of validation on the
+        results.
+        */
+        assertNotNull("RampartEngine returned null result", results);
+        //verify cert was stored
+        X509Certificate usedCert = null;
+        for (int i = 0; i < results.size(); i++) {
+            WSSecurityEngineResult wser = (WSSecurityEngineResult) results.get(i);
+            Integer action = (Integer) wser.get(WSSecurityEngineResult.TAG_ACTION);
+            if (action.intValue() == WSConstants.SIGN) {
+                //the result is for the signature, which contains the used certificate
+                usedCert = (X509Certificate) wser.get(WSSecurityEngineResult.TAG_X509_CERTIFICATE);
+                break;
+            }
+        }
+        assertNotNull("Result of processing did not include a certificate", usedCert);
+    }
+
+    private void buildSOAPEnvelope(MessageContext ctx) throws Exception {
         SOAPBuilder soapBuilder = new SOAPBuilder();
         SOAPEnvelope env = ctx.getEnvelope();
         ByteArrayInputStream inStream = new ByteArrayInputStream(env.toString().getBytes());
-        env = (SOAPEnvelope) soapBuilder.processDocument(inStream, "text/xml", ctx);
+        env = (SOAPEnvelope) soapBuilder.processDocument(inStream, getContentTypeForEnvelope(env), ctx);
         ctx.setEnvelope(env);
-
-        RampartEngine engine = new RampartEngine();
-        engine.process(ctx);
-
     }
 }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/EncryptedKeyToken.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/EncryptedKeyToken.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/EncryptedKeyToken.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/EncryptedKeyToken.java Sun Jan 29 15:02:12 2017
@@ -16,6 +16,9 @@
 
 package org.apache.rahas;
 
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
 import java.util.Date;
 
 import org.apache.axiom.om.OMElement;
@@ -35,6 +38,10 @@ public class EncryptedKeyToken extends T
      * SHA1 value of the encrypted key
      */
     private String sha;
+
+    public EncryptedKeyToken(){
+        super();
+    }
 	
 	public EncryptedKeyToken (String id,Date created, Date expires) {
 		super(id,created,expires);
@@ -59,4 +66,20 @@ public class EncryptedKeyToken extends T
 		return sha;
 	}
 
+    public void writeExternal(ObjectOutput out)
+        throws IOException {
+
+        super.writeExternal(out);
+        out.writeObject(this.sha);
+    }
+
+    public void readExternal(ObjectInput in)
+        throws ClassNotFoundException, IOException {
+
+        super.readExternal(in);
+        this.sha = (String)in.readObject();
+
+    }
+
+
 }

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/RahasData.java Sun Jan 29 15:02:12 2017
@@ -334,6 +334,8 @@ public class RahasData {
                 SecurityTokenReference str = new SecurityTokenReference((Element)elem);
                 if (str.containsReference()) {
                     tokenId = str.getReference().getURI();
+                } else if(str.containsKeyIdentifier()){
+                	tokenId = str.getKeyIdentifierValue();
                 }
             } catch (WSSecurityException e) {
                 throw new TrustException("errorExtractingTokenId",e);
@@ -358,6 +360,8 @@ public class RahasData {
                 SecurityTokenReference str = new SecurityTokenReference((Element)elem);
                 if (str.containsReference()) {
                     tokenId = str.getReference().getURI();
+                } else if(str.containsKeyIdentifier()){
+                	tokenId = str.getKeyIdentifierValue();
                 }
                 if(tokenId == null){
                     if(str.containsKeyIdentifier()){

Modified: axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java
URL: http://svn.apache.org/viewvc/axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java?rev=1780802&r1=1780801&r2=1780802&view=diff
==============================================================================
--- axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java (original)
+++ axis/axis2/java/rampart/branches/RAMPART-252/modules/rampart-trust/src/main/java/org/apache/rahas/SimpleTokenStore.java Sun Jan 29 15:02:12 2017
@@ -21,6 +21,8 @@ import org.apache.ws.security.WSConstant
 import org.apache.ws.security.message.token.Reference;
 
 import javax.xml.namespace.QName;
+
+import java.io.Serializable;
 import java.util.*;
 import java.util.concurrent.locks.Lock;
 import java.util.concurrent.locks.ReadWriteLock;
@@ -29,7 +31,7 @@ import java.util.concurrent.locks.Reentr
 /**
  * In-memory implementation of the token storage
  */
-public class SimpleTokenStore implements TokenStorage {
+public class SimpleTokenStore implements TokenStorage, Serializable {
 
     protected Map tokens = new Hashtable();
     
@@ -185,8 +187,7 @@ public class SimpleTokenStore implements
         
         } finally {
             readLock.unlock();
-        }
-      
+        }        
         return token;
     }