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;
}
}