You are viewing a plain text version of this content. The canonical link for it is here.
Posted to rampart-dev@ws.apache.org by na...@apache.org on 2008/01/29 15:30:44 UTC

svn commit: r616339 - /webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.java

Author: nandana
Date: Tue Jan 29 06:30:42 2008
New Revision: 616339

URL: http://svn.apache.org/viewvc?rev=616339&view=rev
Log:
rampart-policy related changes to support WS Security Policy 1.2

Modified:
    webservices/rampart/trunk/java/modules/rampart-core/src/main/java/org/apache/rampart/policy/RampartPolicyBuilder.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=616339&r1=616338&r2=616339&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 Tue Jan 29 06:30:42 2008
@@ -23,11 +23,13 @@
 import org.apache.ws.secpolicy.WSSPolicyException;
 import org.apache.ws.secpolicy.model.AsymmetricBinding;
 import org.apache.ws.secpolicy.model.Binding;
+import org.apache.ws.secpolicy.model.ContentEncryptedElements;
 import org.apache.ws.secpolicy.model.EncryptionToken;
 import org.apache.ws.secpolicy.model.Header;
 import org.apache.ws.secpolicy.model.InitiatorToken;
 import org.apache.ws.secpolicy.model.ProtectionToken;
 import org.apache.ws.secpolicy.model.RecipientToken;
+import org.apache.ws.secpolicy.model.RequiredElements;
 import org.apache.ws.secpolicy.model.SignatureToken;
 import org.apache.ws.secpolicy.model.SignedEncryptedElements;
 import org.apache.ws.secpolicy.model.SignedEncryptedParts;
@@ -95,7 +97,11 @@
                         rpd);
             } else if (assertion instanceof SignedEncryptedParts) {
                 processSignedEncryptedParts((SignedEncryptedParts) assertion, rpd);
-            } else if (assertion instanceof SupportingToken) {
+            } else if ( assertion instanceof RequiredElements) {   
+                processRequiredElements((RequiredElements)assertion, rpd);
+            } else if (assertion instanceof ContentEncryptedElements) { 
+                processContentEncryptedElements((ContentEncryptedElements) assertion, rpd);
+            }else if (assertion instanceof SupportingToken) {
                 processSupportingTokens((SupportingToken) assertion, rpd);
             } else if (assertion instanceof Trust10) {
                 processTrust10((Trust10)assertion, rpd);
@@ -224,19 +230,40 @@
         Iterator it = sep.getHeaders().iterator();
         if (sep.isSignedParts()) {
             rpd.setSignBody(sep.isBody());
+            rpd.setSignAttachments(sep.isAttachments());
             while (it.hasNext()) {
                 Header header = (Header) it.next();
                 rpd.addSignedPart(header.getNamespace(), header.getName());
             }
         } else {
             rpd.setEncryptBody(sep.isBody());
+            rpd.setEncryptAttachments(sep.isAttachments());
             while (it.hasNext()) {
                 Header header = (Header) it.next();
                 rpd.setEncryptedParts(header.getNamespace(), header.getName(),"Header");
             }
         }
     }
+    
+    private static void processContentEncryptedElements(ContentEncryptedElements cee,
+            RampartPolicyData rpd) {
+        
+        Iterator it = cee.getXPathExpressions().iterator();     
+        while (it.hasNext()) {
+            rpd.setContentEncryptedElements((String) it.next());
+        }
+        rpd.addDeclaredNamespaces(cee.getDeclaredNamespaces());
+    }
 
+    private static void processRequiredElements(RequiredElements req,
+            RampartPolicyData rpd) {
+        
+        Iterator it = req.getXPathExpressions().iterator();     
+        while (it.hasNext()) {
+            rpd.setRequiredElements((String) it.next());
+        }
+        rpd.addDeclaredNamespaces(req.getDeclaredNamespaces());
+    }
     /**
      * Evaluate policy data that is common to all bindings.
      *