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 do...@apache.org on 2009/08/27 16:48:29 UTC

svn commit: r808438 - in /webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws: secpolicy11/builders/EncryptedPartsBuilder.java secpolicy12/builders/EncryptedPartsBuilder.java

Author: dobri
Date: Thu Aug 27 14:48:29 2009
New Revision: 808438

URL: http://svn.apache.org/viewvc?rev=808438&view=rev
Log:
Fixes the https://issues.apache.org/jira/browse/RAMPART-244 "Invalid behavior when empty <sp:EncryptedParts/> element present in the policy"

Modified:
    webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
    webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java

Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java?rev=808438&r1=808437&r2=808438&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy11/builders/EncryptedPartsBuilder.java Thu Aug 27 14:48:29 2009
@@ -36,9 +36,17 @@
         
         SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(false, SPConstants.SP_V11);
         
-        for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {
-            processElement((OMElement) iterator.next(), signedEncryptedParts);
-        }
+        Iterator iterator = element.getChildElements();
+		if (iterator.hasNext()) {
+			for (; iterator.hasNext();) {
+				processElement((OMElement) iterator.next(),
+						signedEncryptedParts);
+			}
+		} else {
+			// If we have only <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"/>
+			// then we need to encrypt the whole body (refer to http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826515).
+			signedEncryptedParts.setBody(true);
+		}
         
         return signedEncryptedParts;
     }

Modified: webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java
URL: http://svn.apache.org/viewvc/webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java?rev=808438&r1=808437&r2=808438&view=diff
==============================================================================
--- webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java (original)
+++ webservices/rampart/trunk/java/modules/rampart-policy/src/main/java/org/apache/ws/secpolicy12/builders/EncryptedPartsBuilder.java Thu Aug 27 14:48:29 2009
@@ -36,9 +36,17 @@
         
         SignedEncryptedParts signedEncryptedParts = new SignedEncryptedParts(false, SPConstants.SP_V12);
         
-        for (Iterator iterator = element.getChildElements(); iterator.hasNext();) {
-            processElement((OMElement) iterator.next(), signedEncryptedParts);
-        }
+        Iterator iterator = element.getChildElements();
+		if (iterator.hasNext()) {
+			for (; iterator.hasNext();) {
+				processElement((OMElement) iterator.next(),
+						signedEncryptedParts);
+			}
+		} else {
+			// If we have only <sp:EncryptedParts xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy"/>
+			// then we need to encrypt the whole body (refer to http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826515).
+			signedEncryptedParts.setBody(true);
+		}
         
         return signedEncryptedParts;
     }