Return-Path: X-Original-To: apmail-cxf-commits-archive@www.apache.org Delivered-To: apmail-cxf-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 27C21FD38 for ; Fri, 22 Mar 2013 15:02:48 +0000 (UTC) Received: (qmail 92802 invoked by uid 500); 22 Mar 2013 15:02:48 -0000 Delivered-To: apmail-cxf-commits-archive@cxf.apache.org Received: (qmail 92690 invoked by uid 500); 22 Mar 2013 15:02:48 -0000 Mailing-List: contact commits-help@cxf.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cxf.apache.org Delivered-To: mailing list commits@cxf.apache.org Received: (qmail 92682 invoked by uid 99); 22 Mar 2013 15:02:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Mar 2013 15:02:48 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 22 Mar 2013 15:02:41 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id BB878238889B; Fri, 22 Mar 2013 15:02:21 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1459825 - in /cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j: ./ policyvalidators/ Date: Fri, 22 Mar 2013 15:02:21 -0000 To: commits@cxf.apache.org From: coheigea@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20130322150221.BB878238889B@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: coheigea Date: Fri Mar 22 15:02:20 2013 New Revision: 1459825 URL: http://svn.apache.org/r1459825 Log: Avoiding some Collection creation Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JInInterceptor.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/AbstractBindingPolicyValidator.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SamlTokenPolicyValidator.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SecurityContextTokenPolicyValidator.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/UsernameTokenPolicyValidator.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/WSS11PolicyValidator.java cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/X509TokenPolicyValidator.java Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java Fri Mar 22 15:02:20 2013 @@ -536,9 +536,11 @@ public class PolicyBasedWSS4JInIntercept // // Pre-fetch various results // - List signedResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.SIGN, signedResults); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.UT_SIGN, signedResults); + final List actions = new ArrayList(2); + actions.add(WSConstants.SIGN); + actions.add(WSConstants.UT_SIGN); + List signedResults = + WSS4JUtils.fetchAllActionResults(results, actions); for (WSSecurityEngineResult result : signedResults) { List sl = CastUtils.cast((List)result.get(WSSecurityEngineResult.TAG_DATA_REF_URIS)); @@ -549,8 +551,8 @@ public class PolicyBasedWSS4JInIntercept } } - List encryptResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.ENCR, encryptResults); + List encryptResults = + WSS4JUtils.fetchAllActionResults(results, WSConstants.ENCR); for (WSSecurityEngineResult result : encryptResults) { List sl = CastUtils.cast((List)result.get(WSSecurityEngineResult.TAG_DATA_REF_URIS)); @@ -707,13 +709,17 @@ public class PolicyBasedWSS4JInIntercept List encryptedResults, boolean utWithCallbacks ) { - List utResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.UT, utResults); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.UT_NOPASSWORD, utResults); - - List samlResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.ST_SIGNED, samlResults); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.ST_UNSIGNED, samlResults); + final List utActions = new ArrayList(2); + utActions.add(WSConstants.UT); + utActions.add(WSConstants.UT_NOPASSWORD); + List utResults = + WSS4JUtils.fetchAllActionResults(results, utActions); + + final List samlActions = new ArrayList(2); + samlActions.add(WSConstants.ST_SIGNED); + samlActions.add(WSConstants.ST_UNSIGNED); + List samlResults = + WSS4JUtils.fetchAllActionResults(results, samlActions); // Store the timestamp element WSSecurityEngineResult tsResult = WSSecurityUtil.fetchActionResult(results, WSConstants.TS); 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=1459825&r1=1459824&r2=1459825&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 Mar 22 15:02:20 2013 @@ -383,9 +383,8 @@ public class WSS4JInInterceptor extends SoapMessage msg, RequestData reqData, List wsResult ) throws WSSecurityException { // Extract the signature action result from the action list - List signatureResults = new ArrayList(); - signatureResults = - WSSecurityUtil.fetchAllActionResults(wsResult, WSConstants.SIGN, signatureResults); + List signatureResults = + WSS4JUtils.fetchAllActionResults(wsResult, WSConstants.SIGN); // Store the last signature result if (!signatureResults.isEmpty()) { @@ -397,9 +396,8 @@ public class WSS4JInInterceptor extends SoapMessage msg, RequestData reqData, List wsResult ) throws WSSecurityException { // Extract the timestamp action result from the action list - List timestampResults = new ArrayList(); - timestampResults = - WSSecurityUtil.fetchAllActionResults(wsResult, WSConstants.TS, timestampResults); + List timestampResults = + WSS4JUtils.fetchAllActionResults(wsResult, WSConstants.TS); if (!timestampResults.isEmpty()) { msg.put(TIMESTAMP_RESULT, timestampResults.get(timestampResults.size() - 1)); Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/WSS4JUtils.java Fri Mar 22 15:02:20 2013 @@ -18,11 +18,16 @@ */ package org.apache.cxf.ws.security.wss4j; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + import org.apache.cxf.binding.soap.SoapMessage; import org.apache.cxf.endpoint.Endpoint; import org.apache.cxf.message.MessageUtils; import org.apache.cxf.service.model.EndpointInfo; import org.apache.cxf.ws.security.cache.ReplayCacheFactory; +import org.apache.ws.security.WSSecurityEngineResult; import org.apache.ws.security.cache.ReplayCache; /** @@ -85,5 +90,51 @@ public final class WSS4JUtils { return null; } + /** + * 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 + * @return The result fetched from the result list, null if the result + * could not be found + */ + public static List fetchAllActionResults( + List resultList, + 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 fetchAllActionResults( + List resultList, + List actions + ) { + List 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 (actions.contains(resultAction)) { + if (actionResultList.isEmpty()) { + actionResultList = new ArrayList(); + } + actionResultList.add(result); + } + } + return actionResultList; + } } Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/AbstractBindingPolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/AbstractBindingPolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/AbstractBindingPolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/AbstractBindingPolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -21,7 +21,6 @@ package org.apache.cxf.ws.security.wss4j import java.security.PublicKey; import java.security.cert.X509Certificate; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -44,6 +43,7 @@ import org.apache.cxf.ws.security.policy import org.apache.cxf.ws.security.policy.model.Token; import org.apache.cxf.ws.security.policy.model.TokenWrapper; import org.apache.cxf.ws.security.policy.model.X509Token; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.neethi.Assertion; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSDataRef; @@ -54,7 +54,6 @@ import org.apache.ws.security.message.to import org.apache.ws.security.message.token.X509Security; import org.apache.ws.security.saml.SAMLKeyInfo; import org.apache.ws.security.saml.ext.AssertionWrapper; -import org.apache.ws.security.util.WSSecurityUtil; /** * Some abstract functionality for validating a security binding. @@ -78,8 +77,8 @@ public abstract class AbstractBindingPol List signedResults, Message message ) { - List timestampResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.TS, timestampResults); + List timestampResults = + WSS4JUtils.fetchAllActionResults(results, WSConstants.TS); // Check whether we received a timestamp and compare it to the policy if (includeTimestamp && timestampResults.size() != 1) { Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SamlTokenPolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SamlTokenPolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SamlTokenPolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SamlTokenPolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -33,10 +33,10 @@ import org.apache.cxf.ws.policy.Assertio import org.apache.cxf.ws.security.policy.SP12Constants; import org.apache.cxf.ws.security.policy.model.SamlToken; import org.apache.cxf.ws.security.wss4j.SAMLUtils; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSecurityEngineResult; import org.apache.ws.security.saml.ext.AssertionWrapper; -import org.apache.ws.security.util.WSSecurityUtil; import org.opensaml.common.SAMLVersion; /** @@ -62,9 +62,11 @@ public class SamlTokenPolicyValidator ex body = soapBody; signed = signedResults; - List samlResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.ST_SIGNED, samlResults); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.ST_UNSIGNED, samlResults); + final List actions = new ArrayList(2); + actions.add(WSConstants.ST_SIGNED); + actions.add(WSConstants.ST_UNSIGNED); + List samlResults = + WSS4JUtils.fetchAllActionResults(results, actions); for (AssertionInfo ai : ais) { SamlToken samlToken = (SamlToken)ai.getAssertion(); Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SecurityContextTokenPolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SecurityContextTokenPolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SecurityContextTokenPolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/SecurityContextTokenPolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -19,7 +19,6 @@ package org.apache.cxf.ws.security.wss4j.policyvalidators; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -30,9 +29,9 @@ import org.apache.cxf.ws.policy.Assertio import org.apache.cxf.ws.policy.AssertionInfoMap; import org.apache.cxf.ws.security.policy.SP12Constants; import org.apache.cxf.ws.security.policy.model.SecurityContextToken; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSecurityEngineResult; -import org.apache.ws.security.util.WSSecurityUtil; /** * Validate a SecurityContextToken policy. @@ -52,8 +51,8 @@ public class SecurityContextTokenPolicyV return true; } - List sctResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.SCT, sctResults); + List sctResults = + WSS4JUtils.fetchAllActionResults(results, WSConstants.SCT); for (AssertionInfo ai : ais) { SecurityContextToken sctPolicy = (SecurityContextToken)ai.getAssertion(); Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/UsernameTokenPolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/UsernameTokenPolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/UsernameTokenPolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/UsernameTokenPolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -31,10 +31,10 @@ import org.apache.cxf.ws.policy.Assertio import org.apache.cxf.ws.security.policy.SP12Constants; import org.apache.cxf.ws.security.policy.SPConstants; import org.apache.cxf.ws.security.policy.model.SupportingToken; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSecurityEngineResult; import org.apache.ws.security.message.token.UsernameToken; -import org.apache.ws.security.util.WSSecurityUtil; /** * Validate a UsernameToken policy. @@ -54,9 +54,11 @@ public class UsernameTokenPolicyValidato return true; } - List utResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.UT, utResults); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.UT_NOPASSWORD, utResults); + final List actions = new ArrayList(2); + actions.add(WSConstants.UT); + actions.add(WSConstants.UT_NOPASSWORD); + List utResults = + WSS4JUtils.fetchAllActionResults(results, actions); for (AssertionInfo ai : ais) { org.apache.cxf.ws.security.policy.model.UsernameToken usernameTokenPolicy = Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/WSS11PolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/WSS11PolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/WSS11PolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/WSS11PolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -19,7 +19,6 @@ package org.apache.cxf.ws.security.wss4j.policyvalidators; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -31,9 +30,9 @@ import org.apache.cxf.ws.policy.Assertio import org.apache.cxf.ws.policy.AssertionInfoMap; import org.apache.cxf.ws.security.policy.SP12Constants; import org.apache.cxf.ws.security.policy.model.Wss11; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSecurityEngineResult; -import org.apache.ws.security.util.WSSecurityUtil; /** * Validate a WSS11 policy. @@ -52,8 +51,8 @@ public class WSS11PolicyValidator implem return true; } - List scResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.SC, scResults); + List scResults = + WSS4JUtils.fetchAllActionResults(results, WSConstants.SC); for (AssertionInfo ai : ais) { Wss11 wss11 = (Wss11)ai.getAssertion(); Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/X509TokenPolicyValidator.java URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/X509TokenPolicyValidator.java?rev=1459825&r1=1459824&r2=1459825&view=diff ============================================================================== --- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/X509TokenPolicyValidator.java (original) +++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyvalidators/X509TokenPolicyValidator.java Fri Mar 22 15:02:20 2013 @@ -19,7 +19,6 @@ package org.apache.cxf.ws.security.wss4j.policyvalidators; -import java.util.ArrayList; import java.util.Collection; import java.util.List; @@ -31,10 +30,10 @@ import org.apache.cxf.ws.policy.Assertio import org.apache.cxf.ws.security.policy.SP12Constants; import org.apache.cxf.ws.security.policy.SPConstants; import org.apache.cxf.ws.security.policy.model.X509Token; +import org.apache.cxf.ws.security.wss4j.WSS4JUtils; import org.apache.ws.security.WSConstants; import org.apache.ws.security.WSSecurityEngineResult; import org.apache.ws.security.message.token.BinarySecurity; -import org.apache.ws.security.util.WSSecurityUtil; /** * Validate an X509 Token policy. @@ -56,8 +55,8 @@ public class X509TokenPolicyValidator ex return true; } - List bstResults = new ArrayList(); - WSSecurityUtil.fetchAllActionResults(results, WSConstants.BST, bstResults); + List bstResults = + WSS4JUtils.fetchAllActionResults(results, WSConstants.BST); for (AssertionInfo ai : ais) { X509Token x509TokenPolicy = (X509Token)ai.getAssertion();