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 2013/07/25 13:17:44 UTC

svn commit: r1506891 - in /cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j: PolicyBasedWSS4JStaxInInterceptor.java WSS4JStaxInInterceptor.java

Author: coheigea
Date: Thu Jul 25 11:17:43 2013
New Revision: 1506891

URL: http://svn.apache.org/r1506891
Log:
Don't catch PolicyInputProcessor SecurityEvents

Modified:
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxInInterceptor.java
    cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JStaxInInterceptor.java

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxInInterceptor.java?rev=1506891&r1=1506890&r2=1506891&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxInInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxInInterceptor.java Thu Jul 25 11:17:43 2013
@@ -28,7 +28,6 @@ import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.Properties;
 import java.util.logging.Logger;
@@ -389,15 +388,19 @@ public class PolicyBasedWSS4JStaxInInter
     }
     
     @Override
-    protected SecurityEventListener configureSecurityEventListener(
+    protected List<SecurityEventListener> configureSecurityEventListeners(
         SoapMessage msg, WSSSecurityProperties securityProperties
     ) throws WSSPolicyException {
+        List<SecurityEventListener> securityEventListeners = new ArrayList<SecurityEventListener>(2);
+        securityEventListeners.addAll(super.configureSecurityEventListeners(msg, securityProperties));
+        
         Endpoint endoint = msg.getExchange().get(Endpoint.class);
         
         PolicyEnforcer policyEnforcer = createPolicyEnforcer(endoint.getEndpointInfo(), msg);
         securityProperties.addInputProcessor(new PolicyInputProcessor(policyEnforcer, securityProperties));
-
-        return policyEnforcer;
+        securityEventListeners.add(policyEnforcer);
+        
+        return securityEventListeners;
     }
     
     private PolicyEnforcer createPolicyEnforcer(
@@ -457,21 +460,7 @@ public class PolicyBasedWSS4JStaxInInter
         }
         
         String actor = (String)msg.getContextualProperty(SecurityConstants.ACTOR);
-        final List<SecurityEvent> incomingSecurityEventList = new LinkedList<SecurityEvent>();
-        PolicyEnforcer securityEventListener = 
-            new PolicyEnforcer(operationPolicies, soapAction, isRequestor(msg), actor) {
-            
-                @Override
-                public void registerSecurityEvent(SecurityEvent securityEvent) throws WSSecurityException {
-                    incomingSecurityEventList.add(securityEvent);
-                    super.registerSecurityEvent(securityEvent);
-                }
-            };
-        
-        msg.getExchange().put(SecurityEvent.class.getName() + ".in", incomingSecurityEventList);
-        msg.put(SecurityEvent.class.getName() + ".in", incomingSecurityEventList);
-        
-        return securityEventListener;
+        return new PolicyEnforcer(operationPolicies, soapAction, isRequestor(msg), actor);
     }
     
 }

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JStaxInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JStaxInInterceptor.java?rev=1506891&r1=1506890&r2=1506891&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JStaxInInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JStaxInInterceptor.java Thu Jul 25 11:17:43 2013
@@ -20,6 +20,7 @@ package org.apache.cxf.ws.security.wss4j
 
 import java.io.IOException;
 import java.util.Arrays;
+import java.util.Collections;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
@@ -138,13 +139,13 @@ public class WSS4JStaxInInterceptor exte
 
             setTokenValidators(secProps, soapMessage);
             
-            SecurityEventListener securityEventListener = 
-                configureSecurityEventListener(soapMessage, secProps);
+            List<SecurityEventListener> securityEventListeners = 
+                configureSecurityEventListeners(soapMessage, secProps);
             
             inboundWSSec = WSSec.getInboundWSSec(secProps);
             
             newXmlStreamReader = 
-                inboundWSSec.processInMessage(originalXmlStreamReader, requestSecurityEvents, securityEventListener);
+                inboundWSSec.processInMessage(originalXmlStreamReader, requestSecurityEvents, securityEventListeners);
             soapMessage.setContent(XMLStreamReader.class, newXmlStreamReader);
 
             // Warning: The exceptions which can occur here are not security relevant exceptions
@@ -162,7 +163,7 @@ public class WSS4JStaxInInterceptor exte
         }
     }
     
-    protected SecurityEventListener configureSecurityEventListener(
+    protected List<SecurityEventListener> configureSecurityEventListeners(
         SoapMessage msg, WSSSecurityProperties securityProperties
     ) throws WSSPolicyException {
         final List<SecurityEvent> incomingSecurityEventList = new LinkedList<SecurityEvent>();
@@ -175,7 +176,7 @@ public class WSS4JStaxInInterceptor exte
         msg.getExchange().put(SecurityEvent.class.getName() + ".in", incomingSecurityEventList);
         msg.put(SecurityEvent.class.getName() + ".in", incomingSecurityEventList);
         
-        return securityEventListener;
+        return Collections.singletonList(securityEventListener);
     }
     
     protected void configureProperties(SoapMessage msg) throws WSSecurityException {