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());