Author: coheigea
Date: Fri Nov 22 12:21:40 2013
New Revision: 1544510

URL: http://svn.apache.org/r1544510
Log:
[WSS-482] - EncryptedElements + SignedElements validation not working

Modified:
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/EncryptedElementsAssertionState.java
    
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SignedElementsAssertionState.java

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/EncryptedElementsAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/EncryptedElementsAssertionState.java?rev=1544510&r1=1544509&r2=1544510&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/EncryptedElementsAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/EncryptedElementsAssertionState.java
 Fri Nov 22 12:21:40 2013
@@ -23,7 +23,7 @@ import org.apache.wss4j.policy.WSSPolicy
 import org.apache.wss4j.policy.model.AbstractSecurityAssertion;
 import org.apache.wss4j.policy.model.EncryptedElements;
 import org.apache.wss4j.policy.model.XPath;
-import 
org.apache.xml.security.stax.securityEvent.EncryptedElementSecurityEvent;
+import 
org.apache.xml.security.stax.securityEvent.AbstractSecuredElementSecurityEvent;
 import org.apache.xml.security.stax.securityEvent.SecurityEvent;
 import org.apache.xml.security.stax.securityEvent.SecurityEventConstants;
 import org.apache.wss4j.policy.stax.Assertable;
@@ -32,6 +32,7 @@ import org.apache.wss4j.stax.ext.WSSUtil
 import org.apache.wss4j.stax.securityEvent.WSSecurityEventConstants;
 
 import javax.xml.namespace.QName;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -57,13 +58,15 @@ public class EncryptedElementsAssertionS
     @Override
     public SecurityEventConstants.Event[] getSecurityEventType() {
         return new SecurityEventConstants.Event[]{
-                WSSecurityEventConstants.EncryptedElement
+                WSSecurityEventConstants.EncryptedElement,
+                WSSecurityEventConstants.EncryptedPart
         };
     }
 
     @Override
     public boolean assertEvent(SecurityEvent securityEvent) throws 
WSSPolicyException {
-        EncryptedElementSecurityEvent encryptedElementSecurityEvent = 
(EncryptedElementSecurityEvent) securityEvent;
+        AbstractSecuredElementSecurityEvent encryptedElementSecurityEvent = 
+            (AbstractSecuredElementSecurityEvent) securityEvent;
 
         Iterator<List<QName>> pathElementIterator = pathElements.iterator();
         while (pathElementIterator.hasNext()) {

Modified: 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SignedElementsAssertionState.java
URL: 
http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SignedElementsAssertionState.java?rev=1544510&r1=1544509&r2=1544510&view=diff
==============================================================================
--- 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SignedElementsAssertionState.java
 (original)
+++ 
webservices/wss4j/trunk/ws-security-policy-stax/src/main/java/org/apache/wss4j/policy/stax/assertionStates/SignedElementsAssertionState.java
 Fri Nov 22 12:21:40 2013
@@ -23,14 +23,16 @@ import org.apache.wss4j.policy.WSSPolicy
 import org.apache.wss4j.policy.model.AbstractSecurityAssertion;
 import org.apache.wss4j.policy.model.SignedElements;
 import org.apache.wss4j.policy.model.XPath;
+import 
org.apache.xml.security.stax.securityEvent.AbstractSecuredElementSecurityEvent;
 import org.apache.xml.security.stax.securityEvent.SecurityEvent;
 import org.apache.xml.security.stax.securityEvent.SecurityEventConstants;
-import org.apache.xml.security.stax.securityEvent.SignedElementSecurityEvent;
 import org.apache.wss4j.policy.stax.Assertable;
 import org.apache.wss4j.policy.stax.PolicyUtils;
 import org.apache.wss4j.stax.ext.WSSUtils;
+import org.apache.wss4j.stax.securityEvent.WSSecurityEventConstants;
 
 import javax.xml.namespace.QName;
+
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
@@ -58,7 +60,8 @@ public class SignedElementsAssertionStat
     @Override
     public SecurityEventConstants.Event[] getSecurityEventType() {
         return new SecurityEventConstants.Event[]{
-                SecurityEventConstants.SignedElement
+                SecurityEventConstants.SignedElement,
+                WSSecurityEventConstants.SignedPart
         };
     }
 
@@ -68,19 +71,19 @@ public class SignedElementsAssertionStat
 
     @Override
     public boolean assertEvent(SecurityEvent securityEvent) throws 
WSSPolicyException {
-        SignedElementSecurityEvent signedElementSecurityEvent = 
(SignedElementSecurityEvent) securityEvent;
+        AbstractSecuredElementSecurityEvent signedSecurityEvent = 
(AbstractSecuredElementSecurityEvent) securityEvent;
 
         Iterator<List<QName>> pathElementIterator = pathElements.iterator();
         while (pathElementIterator.hasNext()) {
             List<QName> pathElements = pathElementIterator.next();
-            if (WSSUtils.pathMatches(pathElements, 
signedElementSecurityEvent.getElementPath(), true, false)) {
-                if (signedElementSecurityEvent.isSigned()) {
+            if (WSSUtils.pathMatches(pathElements, 
signedSecurityEvent.getElementPath(), true, false)) {
+                if (signedSecurityEvent.isSigned()) {
                     setAsserted(true);
                     return true;
                 } else {
                     //an element must be signed but isn't
                     setAsserted(false);
-                    setErrorMessage("Element " + 
WSSUtils.pathAsString(signedElementSecurityEvent.getElementPath()) + " must be 
signed");
+                    setErrorMessage("Element " + 
WSSUtils.pathAsString(signedSecurityEvent.getElementPath()) + " must be 
signed");
                     return false;
                 }
             }


Reply via email to