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 2013/03/22 15:34:21 UTC

svn commit: r1459806 - in /webservices/wss4j/trunk/ws-security-dom/src: main/java/org/apache/wss4j/dom/action/ main/java/org/apache/wss4j/dom/handler/ main/java/org/apache/wss4j/dom/util/ test/java/org/apache/wss4j/dom/message/

Author: coheigea
Date: Fri Mar 22 14:34:21 2013
New Revision: 1459806

URL: http://svn.apache.org/r1459806
Log:
Some updates relating to retrieving actions

Modified:
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
    webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/util/WSSecurityUtil.java
    webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java?rev=1459806&r1=1459805&r2=1459806&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/action/SignatureConfirmationAction.java Fri Mar 22 14:34:21 2013
@@ -56,18 +56,16 @@ public class SignatureConfirmationAction
         // Loop over all the (signature) results gathered by all the processors, and store
         // them in a list.
         //
+        final List<Integer> actions = new ArrayList<Integer>(3);
+        actions.add(WSConstants.SIGN);
+        actions.add(WSConstants.ST_SIGNED);
+        actions.add(WSConstants.UT_SIGN);
         List<WSSecurityEngineResult> signatureActions = new ArrayList<WSSecurityEngineResult>();
         for (WSHandlerResult wshResult : results) {
             List<WSSecurityEngineResult> resultList = wshResult.getResults();
 
-            WSSecurityUtil.fetchAllActionResults(
-                resultList, WSConstants.SIGN, signatureActions
-            );
-            WSSecurityUtil.fetchAllActionResults(
-                resultList, WSConstants.ST_SIGNED, signatureActions
-            );
-            WSSecurityUtil.fetchAllActionResults(
-                resultList, WSConstants.UT_SIGN, signatureActions
+            signatureActions.addAll(
+                WSSecurityUtil.fetchAllActionResults(resultList, actions)
             );
         }
         //

Modified: webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java?rev=1459806&r1=1459805&r2=1459806&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/main/java/org/apache/wss4j/dom/handler/WSHandler.java Fri Mar 22 14:34:21 2013
@@ -384,8 +384,8 @@ public abstract class WSHandler {
         // the current run of receiver (we can have more than one run: if we
         // have several security header blocks with different actors/roles)
         //
-        List<WSSecurityEngineResult> sigConf = new ArrayList<WSSecurityEngineResult>();
-        WSSecurityUtil.fetchAllActionResults(resultList, WSConstants.SC, sigConf);
+        List<WSSecurityEngineResult> sigConf = 
+            WSSecurityUtil.fetchAllActionResults(resultList, WSConstants.SC);
         //
         // now loop over all SignatureConfirmation results and check:
         // - if there is a signature value and no Signature value generated in request: error

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=1459806&r1=1459805&r2=1459806&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 Fri Mar 22 14:34:21 2013
@@ -899,28 +899,47 @@ public final class WSSecurityUtil {
         return returnResult;
     }
     
-
     /**
      * Fetch the result of a given action from a given result list.
      * 
      * @param resultList The result list to fetch an action from
      * @param action The action to fetch
-     * @param actionResultList where to store the found results data for the action
      * @return The result fetched from the result list, null if the result
      *         could not be found
      */
     public static List<WSSecurityEngineResult> fetchAllActionResults(
         List<WSSecurityEngineResult> resultList,
-        int action, 
-        List<WSSecurityEngineResult> actionResultList
+        int action
+    ) {
+        return fetchAllActionResults(resultList, Collections.singletonList(action));
+    }
+    
+    /**
+     * Fetch the results of a given number of actions action from a given result list.
+     * 
+     * @param resultList The result list to fetch an action from
+     * @param actions The list of actions to fetch
+     * @return The list of matching results fetched from the result list
+     */
+    public static List<WSSecurityEngineResult> fetchAllActionResults(
+        List<WSSecurityEngineResult> resultList,
+        List<Integer> actions
     ) {
+        List<WSSecurityEngineResult> actionResultList = Collections.emptyList();
+        if (actions == null || actions.isEmpty()) {
+            return actionResultList;
+        }
+        
         for (WSSecurityEngineResult result : resultList) {
             //
             // Check the result of every action whether it matches the given action
             //
             int resultAction = 
                 ((java.lang.Integer)result.get(WSSecurityEngineResult.TAG_ACTION)).intValue();
-            if (resultAction == action) {
+            if (actions.contains(resultAction)) {
+                if (actionResultList.isEmpty()) {
+                    actionResultList = new ArrayList<WSSecurityEngineResult>();
+                }
                 actionResultList.add(result);
             }
         }

Modified: webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java
URL: http://svn.apache.org/viewvc/webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java?rev=1459806&r1=1459805&r2=1459806&view=diff
==============================================================================
--- webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java (original)
+++ webservices/wss4j/trunk/ws-security-dom/src/test/java/org/apache/wss4j/dom/message/SignatureEncryptionTest.java Fri Mar 22 14:34:21 2013
@@ -184,11 +184,11 @@ public class SignatureEncryptionTest ext
         
         List<WSSecurityEngineResult> results = verify(encryptedSignedDoc);
         
-        List<WSSecurityEngineResult> sigSecEngResults = new ArrayList<WSSecurityEngineResult>();
-        WSSecurityUtil.fetchAllActionResults(results, WSConstants.SIGN, sigSecEngResults);
+        List<WSSecurityEngineResult> sigSecEngResults = 
+            WSSecurityUtil.fetchAllActionResults(results, WSConstants.SIGN);
         
-        List<WSSecurityEngineResult> encSecEngResults = new ArrayList<WSSecurityEngineResult>();
-        WSSecurityUtil.fetchAllActionResults(results, WSConstants.ENCR, encSecEngResults);
+        List<WSSecurityEngineResult> encSecEngResults = 
+            WSSecurityUtil.fetchAllActionResults(results, WSConstants.ENCR);
         
         assertEquals(1, sigSecEngResults.size());
         assertEquals(1, encSecEngResults.size());