You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by dk...@apache.org on 2009/07/24 19:59:06 UTC

svn commit: r797581 - /cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java

Author: dkulp
Date: Fri Jul 24 17:59:06 2009
New Revision: 797581

URL: http://svn.apache.org/viewvc?rev=797581&view=rev
Log:
[CXF-2356] Make sure the wss4j processing is only done once for faults

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

Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java?rev=797581&r1=797580&r2=797581&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java Fri Jul 24 17:59:06 2009
@@ -81,6 +81,8 @@
     public static final String PRINCIPAL_RESULT = "wss4j.principal.result";
     public static final String PROCESSOR_MAP = "wss4j.processor.map";
 
+    private static final String SECURITY_PROCESSED = WSS4JInInterceptor.class.getName() + ".DONE";
+    
     private static final Logger LOG = LogUtils.getL7dLogger(WSS4JInInterceptor.class);
     private static final Logger TIME_LOG = LogUtils.getL7dLogger(WSS4JInInterceptor.class,
                                                                  null,
@@ -142,6 +144,10 @@
     }
     
     public void handleMessage(SoapMessage msg) throws Fault {
+        if (msg.containsKey(SECURITY_PROCESSED)) {
+            return;
+        }
+        msg.put(SECURITY_PROCESSED, Boolean.TRUE);
         SOAPMessage doc = getSOAPMessage(msg);
         
         boolean doDebug = LOG.isLoggable(Level.FINE);