Author: nandana
Date: Fri Jan 11 02:40:49 2008
New Revision: 611132

URL: http://svn.apache.org/viewvc?rev=611132&view=rev
Log:
Fixing RAMPART-132 issue.

Modified:
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
    
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
    
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
    
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
    
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java
 Fri Jan 11 02:40:49 2008
@@ -208,6 +208,7 @@
                 rpd.setEncryptedElements((String) it.next());
             }
         }
+        rpd.addDeclaredNamespaces(see.getDeclaredNamespaces());
     }
 
     /**

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyData.java
 Fri Jan 11 02:40:49 2008
@@ -100,6 +100,8 @@
     private Vector encryptedParts = new Vector();
 
     private Vector encryptedElements = new Vector();
+    
+    private HashMap declaredNamespaces = new HashMap();
 
     /*
      * Holds the supporting tokens elements
@@ -368,6 +370,14 @@
      */
     public Vector getSignedParts() {
         return signedParts;
+    }
+    
+    public HashMap getDeclaredNamespaces() {
+        return declaredNamespaces;
+    }
+    
+    public void addDeclaredNamespaces(HashMap namespaces) {
+        declaredNamespaces.putAll(namespaces);
     }
 
     /**

Modified: 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/util/RampartUtil.java
 Fri Jan 11 02:40:49 2008
@@ -78,6 +78,7 @@
 import java.security.NoSuchAlgorithmException;
 import java.security.cert.X509Certificate;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Hashtable;
 import java.util.Iterator;
@@ -603,16 +604,16 @@
     public static Vector getEncryptedParts(RampartMessageData rmd) {
         RampartPolicyData rpd =  rmd.getPolicyData();
         SOAPEnvelope envelope = rmd.getMsgContext().getEnvelope();
-        return getPartsAndElements(false, envelope, rpd.isEncryptBody(), 
rpd.getEncryptedParts(), rpd.getEncryptedElements() );
+        return getPartsAndElements(false, envelope, rpd.isEncryptBody(), 
rpd.getEncryptedParts(), 
rpd.getEncryptedElements(),rpd.getDeclaredNamespaces());
     }
 
     public static Vector getSignedParts(RampartMessageData rmd) {
         RampartPolicyData rpd =  rmd.getPolicyData();
         SOAPEnvelope envelope = rmd.getMsgContext().getEnvelope();
-        return getPartsAndElements(true, envelope, rpd.isSignBody(), 
rpd.getSignedParts(), rpd.getSignedElements() );
+        return getPartsAndElements(true, envelope, rpd.isSignBody(), 
rpd.getSignedParts(), rpd.getSignedElements(), rpd.getDeclaredNamespaces());
     }
     
-    private static Set findAllPrefixNamespaces(OMElement currentElement)
+    private static Set findAllPrefixNamespaces(OMElement currentElement, 
HashMap decNamespacess)
     {
        Set results = new HashSet();
        
@@ -626,6 +627,16 @@
             OMNamespace ns = (OMNamespace) iterator.next();
             results.add(ns);
         }
+       
+       for ( Iterator iterator = decNamespacess.keySet().iterator(); 
iterator.hasNext();) {
+           String prefix  = (String) iterator.next();
+           String ns = (String) decNamespacess.get(prefix); 
+           OMFactory omFactory = currentElement.getOMFactory();
+           OMNamespace namespace = omFactory.createOMNamespace(ns, prefix);
+           results.add(namespace);
+           
+       }
+       
        return results;
     }
     
@@ -662,7 +673,7 @@
        
     }
     
-    public static Vector getPartsAndElements(boolean sign, SOAPEnvelope 
envelope, boolean includeBody, Vector parts, Vector elements) {
+    public static Vector getPartsAndElements(boolean sign, SOAPEnvelope 
envelope, boolean includeBody, Vector parts, Vector elements, HashMap 
decNamespaces) {
 
         Vector found = new Vector();
         Vector result = new Vector();
@@ -720,7 +731,7 @@
         // ?? Search for 'Elements' here
         
         // decide what exactly is going to be used - only the default 
namespaces, or the list of all declared namespaces in the message !
-        Set namespaces = findAllPrefixNamespaces(envelope);
+        Set namespaces = findAllPrefixNamespaces(envelope, decNamespaces);
         
         Iterator elementsIter = elements.iterator();
         while (elementsIter.hasNext())

Modified: 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/EncryptedElementsBuilder.java
 Fri Jan 11 02:40:49 2008
@@ -21,6 +21,7 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.AssertionBuilderFactory;
 import org.apache.neethi.builders.AssertionBuilder;
@@ -57,7 +58,12 @@
 
     private void processElement(OMElement element, SignedEncryptedElements 
parent) {
         if (XPATH.equals(element.getQName())) {
-            parent.addXPathExpression(element.getText());                      
  
+            parent.addXPathExpression(element.getText());   
+            Iterator namespaces = element.getAllDeclaredNamespaces();
+            while (namespaces.hasNext()) {
+                OMNamespace nm = (OMNamespace) namespaces.next();
+                parent.addDeclaredNamespaces(nm.getNamespaceURI(), 
nm.getPrefix());
+            }
         }
     }
     

Modified: 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/builders/SignedElementsBuilder.java
 Fri Jan 11 02:40:49 2008
@@ -21,6 +21,7 @@
 
 import org.apache.axiom.om.OMAttribute;
 import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
 import org.apache.neethi.Assertion;
 import org.apache.neethi.AssertionBuilderFactory;
 import org.apache.neethi.builders.AssertionBuilder;
@@ -56,6 +57,12 @@
         QName name = element.getQName();
         if (XPATH.equals(name)) {
             parent.addXPathExpression(element.getText());
+            Iterator namespaces = element.getAllDeclaredNamespaces();
+            while (namespaces.hasNext()) {
+                OMNamespace nm = (OMNamespace) namespaces.next();
+                parent.addDeclaredNamespaces(nm.getNamespaceURI(), 
nm.getPrefix());
+            }
         }
     }
+    
 }

Modified: 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
URL: 
http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java?rev=611132&r1=611131&r2=611132&view=diff
==============================================================================
--- 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
 (original)
+++ 
webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy/model/SignedEncryptedElements.java
 Fri Jan 11 02:40:49 2008
@@ -18,6 +18,7 @@
 
 import java.util.ArrayList;
 import java.util.Iterator;
+import java.util.HashMap;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLStreamException;
@@ -29,6 +30,8 @@
 public class SignedEncryptedElements extends AbstractSecurityAssertion {
 
     private ArrayList xPathExpressions = new ArrayList();
+    
+    private HashMap declaredNamespaces = new HashMap();
 
     private String xPathVersion;
 
@@ -74,7 +77,15 @@
     public boolean isSignedElemets() {
         return signedElemets;
     }
-
+    
+    public HashMap getDeclaredNamespaces () {
+        return declaredNamespaces;
+    }
+    
+    public void addDeclaredNamespaces(String uri, String prefix ) {
+        declaredNamespaces.put(prefix, uri);
+    }
+        
     public void serialize(XMLStreamWriter writer) throws XMLStreamException {
 
         String localName = getName().getLocalPart();


Reply via email to