Repository: cxf Updated Branches: refs/heads/3.0.x-fixes efc7e27a5 -> 05935e926
Some optimisations to the AbstractBindingBuilder Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/05935e92 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/05935e92 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/05935e92 Branch: refs/heads/3.0.x-fixes Commit: 05935e926a50cdd5f3a9db57b2f3772f628b1929 Parents: efc7e27 Author: Colm O hEigeartaigh <[email protected]> Authored: Mon Jul 28 18:03:09 2014 +0100 Committer: Colm O hEigeartaigh <[email protected]> Committed: Mon Jul 28 18:07:17 2014 +0100 ---------------------------------------------------------------------- .../policyhandlers/AbstractBindingBuilder.java | 27 ++++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/05935e92/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java index 6aa6142..aeec3cb 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java @@ -164,11 +164,6 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle protected Set<WSEncryptionPart> encryptedTokensList = new HashSet<WSEncryptionPart>(); - protected List<SupportingToken> endEncSuppTokList; - protected List<SupportingToken> endSuppTokList; - protected List<SupportingToken> sgndEndEncSuppTokList; - protected List<SupportingToken> sgndEndSuppTokList; - protected List<byte[]> signatures = new ArrayList<byte[]>(); protected Element bottomUpElement; @@ -178,7 +173,10 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle private Element lastSupportingTokenElement; private Element lastDerivedKeyElement; + private List<AbstractSecurityAssertion> suppTokenParts = new ArrayList<AbstractSecurityAssertion>(); + private List<SupportingToken> endSuppTokList; + private List<SupportingToken> sgndEndSuppTokList; public AbstractBindingBuilder( WSSConfig config, @@ -1048,6 +1046,10 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle } } + if (parts == null && elements == null && celements == null) { + return new ArrayList<WSEncryptionPart>(); + } + List<WSEncryptionPart> signedParts = new ArrayList<WSEncryptionPart>(); if (parts != null) { isBody = parts.isBody(); @@ -1118,6 +1120,10 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle } } + if (parts == null && elements == null) { + return new ArrayList<WSEncryptionPart>(); + } + List<WSEncryptionPart> signedParts = new ArrayList<WSEncryptionPart>(); if (parts != null) { isSignBody = parts.isBody(); @@ -2054,13 +2060,11 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle Collection<AssertionInfo> endorsingEncryptedSuppTokens = getAllAssertionsByLocalname(aim, SPConstants.ENDORSING_ENCRYPTED_SUPPORTING_TOKENS); - endEncSuppTokList - = this.handleSupportingTokens(endorsingEncryptedSuppTokens, true); + endSuppTokList.addAll(this.handleSupportingTokens(endorsingEncryptedSuppTokens, true)); Collection<AssertionInfo> sgndEndEncSuppTokens = getAllAssertionsByLocalname(aim, SPConstants.SIGNED_ENDORSING_ENCRYPTED_SUPPORTING_TOKENS); - sgndEndEncSuppTokList - = this.handleSupportingTokens(sgndEndEncSuppTokens, true); + sgndEndSuppTokList.addAll(this.handleSupportingTokens(sgndEndEncSuppTokens, true)); Collection<AssertionInfo> supportingToks = getAllAssertionsByLocalname(aim, SPConstants.SUPPORTING_TOKENS); @@ -2074,7 +2078,6 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle addSignatureParts(sigSuppTokList, sigs); addSignatureParts(sgndEncSuppTokList, sigs); addSignatureParts(sgndEndSuppTokList, sigs); - addSignatureParts(sgndEndEncSuppTokList, sigs); } protected void doEndorse() { @@ -2087,13 +2090,9 @@ public abstract class AbstractBindingBuilder extends AbstractCommonBindingHandle tokenProtect = ((SymmetricBinding)binding).isProtectTokens(); sigProtect = ((SymmetricBinding)binding).isEncryptSignature(); } - // Adding the endorsing encrypted supporting tokens to endorsing supporting tokens - endSuppTokList.addAll(endEncSuppTokList); // Do endorsed signatures doEndorsedSignatures(endSuppTokList, tokenProtect, sigProtect); - //Adding the signed endorsed encrypted tokens to signed endorsed supporting tokens - sgndEndSuppTokList.addAll(sgndEndEncSuppTokList); // Do signed endorsing signatures doEndorsedSignatures(sgndEndSuppTokList, tokenProtect, sigProtect); }
