You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2006/11/08 21:27:52 UTC

svn commit: r472625 - in /webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy: builders/ model/

Author: dims
Date: Wed Nov  8 12:27:51 2006
New Revision: 472625

URL: http://svn.apache.org/viewvc?view=rev&rev=472625
Log:
Fix fir AXIS2-1651 - Deserialization of child policies of secPolicy assertions is incorrect

Modified:
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
    webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/IssuedTokenBuilder.java Wed Nov  8 12:27:51 2006
@@ -31,34 +31,43 @@
 
 public class IssuedTokenBuilder implements AssertionBuilder {
 
-    public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
+    public Assertion build(OMElement element, AssertionBuilderFactory factory)
+            throws IllegalArgumentException {
         IssuedToken issuedToken = new IssuedToken();
-        
-        //Extract Issuer
+
+        // Extract Issuer
         OMElement issuerElem = element.getFirstChildWithName(Constants.ISSUER);
-        if(issuerElem != null && issuerElem.getFirstElement() != null) {
+        if (issuerElem != null && issuerElem.getFirstElement() != null) {
             issuedToken.setIssuerEpr(issuerElem.getFirstElement());
         }
-        
-        //Extract RSTTemplate
+
+        // Extract RSTTemplate
         OMElement rstTmplElem = element.getFirstChildWithName(Constants.ISSUER);
-        if(rstTmplElem != null) {
+        if (rstTmplElem != null) {
             issuedToken.setIssuerEpr(rstTmplElem);
         }
-        
-        Policy policy = PolicyEngine.getPolicy(element);
-        policy = (Policy) policy.normalize(false);
-        
-        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
-            processAlternative((List) iterator.next(), issuedToken);
-            break; // since there should be only one alternative ..
+
+        OMElement policyElement = element.getFirstElement();
+
+        if (policyElement != null
+                && policyElement.getQName().equals(
+                        org.apache.neethi.Constants.Q_ELEM_POLICY)) {
+
+            Policy policy = PolicyEngine.getPolicy(policyElement);
+            policy = (Policy) policy.normalize(false);
+
+            for (Iterator iterator = policy.getAlternatives(); iterator
+                    .hasNext();) {
+                processAlternative((List) iterator.next(), issuedToken);
+                break; // since there should be only one alternative ..
+            }
         }
-        
+
         return issuedToken;
     }
-        
+
     public QName[] getKnownElements() {
-        return new QName[] {Constants.ISSUED_TOKEN};
+        return new QName[] { Constants.ISSUED_TOKEN };
     }
 
     private void processAlternative(List assertions, IssuedToken parent) {
@@ -68,15 +77,15 @@
         for (Iterator iterator = assertions.iterator(); iterator.hasNext();) {
             assertion = (Assertion) iterator.next();
             name = assertion.getName();
-            
+
             if (Constants.REQUIRE_DERIVED_KEYS.equals(name)) {
                 parent.setDerivedKeys(true);
-            } else if(Constants.REQUIRE_EXTERNAL_REFERNCE.equals(name)) {
+            } else if (Constants.REQUIRE_EXTERNAL_REFERNCE.equals(name)) {
                 parent.setRequireExternalReference(true);
-            } else if(Constants.REQUIRE_INTERNAL_REFERNCE.equals(name)) {
+            } else if (Constants.REQUIRE_INTERNAL_REFERNCE.equals(name)) {
                 parent.setRequireInternalReference(true);
             }
         }
-        
+
     }
 }

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/LayoutBuilder.java Wed Nov  8 12:27:51 2006
@@ -36,7 +36,7 @@
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
         Layout layout = new Layout();
         
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext(); ) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/ProtectionTokenBuilder.java Wed Nov  8 12:27:51 2006
@@ -35,7 +35,7 @@
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
         ProtectionToken protectionToken = new ProtectionToken();
         
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/RecipientTokenBuilder.java Wed Nov  8 12:27:51 2006
@@ -36,7 +36,7 @@
             throws IllegalArgumentException {
         RecipientToken recipientToken = new RecipientToken();
         
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SupportingTokensBuilder.java Wed Nov  8 12:27:51 2006
@@ -54,12 +54,11 @@
                     Constants.SUPPORTING_TOKEN_SIGNED_ENDORSING);
         }
 
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
 
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
             processAlternative((List) iterator.next(), supportingToken);
-            
             /*
              * for the moment we will say there should be only one alternative 
              */

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/SymmetricBindingBuilder.java Wed Nov  8 12:27:51 2006
@@ -37,7 +37,7 @@
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
         SymmetricBinding symmetricBinding = new SymmetricBinding(); 
         
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/TransportBindingBuilder.java Wed Nov  8 12:27:51 2006
@@ -37,9 +37,8 @@
  
     public Assertion build(OMElement element, AssertionBuilderFactory factory) throws IllegalArgumentException {
         TransportBinding transportBinding = new TransportBinding();
-        OMElement policyElement = element.getFirstElement();
-        
-        Policy policy = PolicyEngine.getPolicy(policyElement);
+       
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/UsernameTokenBuilder.java Wed Nov  8 12:27:51 2006
@@ -52,16 +52,22 @@
             usernameToken.setInclusion(Constants.INCLUDE_ALWAYS);
         }
         
-        Policy policy = PolicyEngine.getPolicy(element);
-        policy = (Policy) policy.normalize(false);
         
-        for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
-            processAlternative((List) iterator.next(), usernameToken);
+        OMElement policyElement = element.getFirstElement();
+        
+        if (policyElement != null && !policyElement.getQName().equals(org.apache.neethi.Constants.Q_ELEM_POLICY)) {
+        
+            Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
+            policy = (Policy) policy.normalize(false);
             
-            /*
-             * since there should be only one alternative
-             */
-            break;
+            for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {
+                processAlternative((List) iterator.next(), usernameToken);
+                
+                /*
+                 * since there should be only one alternative
+                 */
+                break;
+            }            
         }
         
         return usernameToken;

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS10Builder.java Wed Nov  8 12:27:51 2006
@@ -36,7 +36,7 @@
         
         Wss10 wss10 = new Wss10();
         
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
         
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/builders/WSS11Builder.java Wed Nov  8 12:27:51 2006
@@ -35,7 +35,7 @@
             throws IllegalArgumentException {
         Wss11 wss11 = new Wss11();
 
-        Policy policy = PolicyEngine.getPolicy(element);
+        Policy policy = PolicyEngine.getPolicy(element.getFirstElement());
         policy = (Policy) policy.normalize(false);
 
         for (Iterator iterator = policy.getAlternatives(); iterator.hasNext();) {

Modified: webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java?view=diff&rev=472625&r1=472624&r2=472625
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java (original)
+++ webservices/axis2/branches/java/1_1/modules/secpolicy/src/org/apache/ws/secpolicy/model/TransportToken.java Wed Nov  8 12:27:51 2006
@@ -65,8 +65,20 @@
         
         writer.writeStartElement(prefix, localName, namespaceURI);
         
+        String wspPrefix = writer.getPrefix(Constants.POLICY.getNamespaceURI());
+        if (wspPrefix == null) {
+            writer.setPrefix(wspPrefix, Constants.POLICY.getNamespaceURI());
+        }
+        
+        // <wsp:Policy>
+        writer.writeStartElement(Constants.POLICY.getPrefix(), Constants.POLICY.getLocalPart(), Constants.POLICY.getNamespaceURI());
+        
         // serialization of the token ..
         transportToken.serialize(writer);
+        
+        // </wsp:Policy>
+        writer.writeEndElement();
+        
         
         writer.writeEndElement();
         // </sp:TransportToken>



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org