You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by co...@apache.org on 2015/02/24 13:17:10 UTC

svn commit: r1661915 - in /webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom: WSSecurityEngine.java util/WSSecurityUtil.java

Author: coheigea
Date: Tue Feb 24 12:17:10 2015
New Revision: 1661915

URL: http://svn.apache.org/r1661915
Log:
Optimisation to allow for the case when we already have the SOAP header

Modified:
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java?rev=1661915&r1=1661914&r2=1661915&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/WSSecurityEngine.java Tue Feb 24 12:17:10 2015
@@ -20,6 +20,7 @@
 package org.apache.wss4j.dom;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 
 import javax.security.auth.callback.CallbackHandler;
@@ -383,9 +384,8 @@ public class WSSecurityEngine {
         Element securityHeader,
         RequestData requestData
     ) throws WSSecurityException {
-        List<WSSecurityEngineResult> returnResults = new ArrayList<>();
         if (securityHeader == null) {
-            return returnResults;
+            return Collections.emptyList();
         }
     
         if (requestData.getWssConfig() == null) {
@@ -405,6 +405,7 @@ public class WSSecurityEngine {
         final WSSConfig cfg = getWssConfig();
         Node node = securityHeader.getFirstChild();
         
+        List<WSSecurityEngineResult> returnResults = new ArrayList<>();
         boolean foundTimestamp = false;
         while (node != null) {
             Node nextSibling = node.getNextSibling();

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java?rev=1661915&r1=1661914&r2=1661915&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java Tue Feb 24 12:17:10 2015
@@ -92,9 +92,20 @@ public final class WSSecurityUtil {
             return null;
         }
         
+        return getSecurityHeader(soapHeaderElement, actor, WSConstants.URI_SOAP12_ENV.equals(soapNamespace));
+    }
+    
+    /**
+     * Returns the first WS-Security header element for a given actor. Only one
+     * WS-Security header is allowed for an actor.
+     */
+    public static Element getSecurityHeader(Element soapHeader, String actor, boolean soap12) throws WSSecurityException {
+        
         String actorLocal = WSConstants.ATTR_ACTOR;
-        if (WSConstants.URI_SOAP12_ENV.equals(soapNamespace)) {
+        String soapNamespace = WSConstants.URI_SOAP11_ENV;
+        if (soap12) {
             actorLocal = WSConstants.ATTR_ROLE;
+            soapNamespace = WSConstants.URI_SOAP12_ENV;
         }
         
         //
@@ -102,7 +113,7 @@ public final class WSSecurityUtil {
         //
         Element foundSecurityHeader = null;
         for (
-            Node currentChild = soapHeaderElement.getFirstChild(); 
+            Node currentChild = soapHeader.getFirstChild(); 
             currentChild != null; 
             currentChild = currentChild.getNextSibling()
         ) {