You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2011/05/06 18:28:42 UTC
svn commit: r1100270 -
/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java
Author: coheigea
Date: Fri May 6 16:28:42 2011
New Revision: 1100270
URL: http://svn.apache.org/viewvc?rev=1100270&view=rev
Log:
Skip policy checking for SIGNED_PARTS and ENCRYPTED_PARTS when using the Transport Binding
Modified:
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java?rev=1100270&r1=1100269&r2=1100270&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java Fri May 6 16:28:42 2011
@@ -604,10 +604,18 @@ public class PolicyBasedWSS4JInIntercept
CryptoCoverageUtil.reconcileEncryptedSignedRefs(signed, encrypted);
- assertTokens(aim, SP12Constants.SIGNED_PARTS, signed, msg, soapHeader, soapBody, CoverageType.SIGNED);
- assertTokens(
- aim, SP12Constants.ENCRYPTED_PARTS, encrypted, msg, soapHeader, soapBody, CoverageType.ENCRYPTED
- );
+ //
+ // SIGNED_PARTS and ENCRYPTED_PARTS only apply to non-Transport bindings
+ //
+ if (!isTransportBinding(aim)) {
+ assertTokens(
+ aim, SP12Constants.SIGNED_PARTS, signed, msg, soapHeader, soapBody, CoverageType.SIGNED
+ );
+ assertTokens(
+ aim, SP12Constants.ENCRYPTED_PARTS, encrypted, msg, soapHeader, soapBody,
+ CoverageType.ENCRYPTED
+ );
+ }
Element soapEnvelope = soapHeader.getOwnerDocument().getDocumentElement();
assertXPathTokens(aim, SP12Constants.SIGNED_ELEMENTS, signed, msg, soapEnvelope,
CoverageType.SIGNED, CoverageScope.ELEMENT);
@@ -780,5 +788,21 @@ public class PolicyBasedWSS4JInIntercept
assertPolicy(aim, SP12Constants.SIGNED_PARTS);
return true;
}
+
+ private boolean isTransportBinding(AssertionInfoMap aim) {
+ Collection<AssertionInfo> ais = aim.get(SP12Constants.TRANSPORT_BINDING);
+ if (ais != null && ais.size() > 0) {
+ ais = aim.get(SP12Constants.SYMMETRIC_BINDING);
+ if (ais != null && ais.size() > 0) {
+ return false;
+ }
+ ais = aim.get(SP12Constants.ASYMMETRIC_BINDING);
+ if (ais != null && ais.size() > 0) {
+ return false;
+ }
+ return true;
+ }
+ return false;
+ }
}