[CXF-6403] Fix potential memory leak in policy based interceptors # Conflicts: # rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java
Project: http://git-wip-us.apache.org/repos/asf/cxf/repo Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/0db1e238 Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/0db1e238 Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/0db1e238 Branch: refs/heads/3.0.x-fixes Commit: 0db1e238fedaa359b62387465f9d95ba0805e56e Parents: 6700967 Author: Daniel Kulp <[email protected]> Authored: Wed May 13 12:36:18 2015 -0400 Committer: Daniel Kulp <[email protected]> Committed: Thu May 14 15:15:16 2015 -0400 ---------------------------------------------------------------------- .../IssuedTokenInterceptorProvider.java | 15 +++++++++------ .../KerberosTokenInterceptorProvider.java | 10 ++++++---- .../interceptors/SamlTokenInterceptorProvider.java | 10 ++++++---- .../UsernameTokenInterceptorProvider.java | 10 ++++++---- .../WSSecurityInterceptorProvider.java | 17 +++++++++++------ .../wss4j/PolicyBasedWSS4JInInterceptor.java | 2 -- .../wss4j/PolicyBasedWSS4JStaxOutInterceptor.java | 2 -- 7 files changed, 38 insertions(+), 28 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java index 20249be..cfb1ab4 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java @@ -88,20 +88,23 @@ public class IssuedTokenInterceptorProvider extends AbstractPolicyInterceptorPro //issued tokens can be attached as a supporting token without //any type of binding. Make sure we can support that. + PolicyBasedWSS4JInInterceptor in = new PolicyBasedWSS4JInInterceptor(); this.getOutInterceptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE); this.getOutFaultInterceptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JInInterceptor.INSTANCE); + this.getInInterceptors().add(in); + this.getInFaultInterceptors().add(in); this.getOutInterceptors().add(new IssuedTokenOutInterceptor()); this.getOutFaultInterceptors().add(new IssuedTokenOutInterceptor()); this.getInInterceptors().add(new IssuedTokenInInterceptor()); this.getInFaultInterceptors().add(new IssuedTokenInInterceptor()); - this.getOutInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getOutFaultInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); + PolicyBasedWSS4JStaxOutInterceptor so = new PolicyBasedWSS4JStaxOutInterceptor(); + PolicyBasedWSS4JStaxInInterceptor si = new PolicyBasedWSS4JStaxInInterceptor(); + this.getOutInterceptors().add(so); + this.getOutFaultInterceptors().add(so); + this.getInInterceptors().add(si); + this.getInFaultInterceptors().add(si); } protected static void assertIssuedToken(IssuedToken issuedToken, AssertionInfoMap aim) { http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java index 1907276..bd9a240 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java @@ -92,10 +92,12 @@ public class KerberosTokenInterceptorProvider extends AbstractPolicyInterceptorP this.getOutInterceptors().add(new KerberosTokenInterceptor()); this.getInInterceptors().add(new KerberosTokenInterceptor()); - this.getOutInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getOutFaultInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); + PolicyBasedWSS4JStaxOutInterceptor so = new PolicyBasedWSS4JStaxOutInterceptor(); + PolicyBasedWSS4JStaxInInterceptor si = new PolicyBasedWSS4JStaxInInterceptor(); + this.getOutInterceptors().add(so); + this.getOutFaultInterceptors().add(so); + this.getInInterceptors().add(si); + this.getInFaultInterceptors().add(si); } http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SamlTokenInterceptorProvider.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SamlTokenInterceptorProvider.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SamlTokenInterceptorProvider.java index 065c87e..1461c62 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SamlTokenInterceptorProvider.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SamlTokenInterceptorProvider.java @@ -40,10 +40,12 @@ public class SamlTokenInterceptorProvider extends AbstractPolicyInterceptorProvi this.getOutInterceptors().add(new SamlTokenInterceptor()); this.getInInterceptors().add(new SamlTokenInterceptor()); - this.getOutInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getOutFaultInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); + PolicyBasedWSS4JStaxOutInterceptor so = new PolicyBasedWSS4JStaxOutInterceptor(); + PolicyBasedWSS4JStaxInInterceptor si = new PolicyBasedWSS4JStaxInInterceptor(); + this.getOutInterceptors().add(so); + this.getOutFaultInterceptors().add(so); + this.getInInterceptors().add(si); + this.getInFaultInterceptors().add(si); } } http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/UsernameTokenInterceptorProvider.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/UsernameTokenInterceptorProvider.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/UsernameTokenInterceptorProvider.java index 9b3381a..2ce5b36 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/UsernameTokenInterceptorProvider.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/UsernameTokenInterceptorProvider.java @@ -51,10 +51,12 @@ public class UsernameTokenInterceptorProvider extends AbstractPolicyInterceptorP this.getInInterceptors().add(inInterceptor == null ? new UsernameTokenInterceptor() : inInterceptor); //not needed on fault chains - this.getOutInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getOutFaultInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); + PolicyBasedWSS4JStaxOutInterceptor so = new PolicyBasedWSS4JStaxOutInterceptor(); + PolicyBasedWSS4JStaxInInterceptor si = new PolicyBasedWSS4JStaxInInterceptor(); + this.getOutInterceptors().add(so); + this.getOutFaultInterceptors().add(so); + this.getInInterceptors().add(si); + this.getInFaultInterceptors().add(si); } } http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java index beb0a0d..0a9f98f 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/WSSecurityInterceptorProvider.java @@ -54,14 +54,19 @@ public class WSSecurityInterceptorProvider extends AbstractPolicyInterceptorProv public WSSecurityInterceptorProvider() { super(ASSERTION_TYPES); + + PolicyBasedWSS4JInInterceptor in = new PolicyBasedWSS4JInInterceptor(); this.getOutInterceptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE); this.getOutFaultInterceptors().add(PolicyBasedWSS4JOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JInInterceptor.INSTANCE); + this.getInInterceptors().add(in); + this.getInFaultInterceptors().add(in); + - this.getOutInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getOutFaultInterceptors().add(PolicyBasedWSS4JStaxOutInterceptor.INSTANCE); - this.getInInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); - this.getInFaultInterceptors().add(PolicyBasedWSS4JStaxInInterceptor.INSTANCE); + PolicyBasedWSS4JStaxOutInterceptor so = new PolicyBasedWSS4JStaxOutInterceptor(); + PolicyBasedWSS4JStaxInInterceptor si = new PolicyBasedWSS4JStaxInInterceptor(); + this.getOutInterceptors().add(so); + this.getOutFaultInterceptors().add(so); + this.getInInterceptors().add(si); + this.getInFaultInterceptors().add(si); } } http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java index 47629d3..d151cf5 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JInInterceptor.java @@ -110,8 +110,6 @@ import org.apache.wss4j.policy.model.Wss11; * */ public class PolicyBasedWSS4JInInterceptor extends WSS4JInInterceptor { - public static final PolicyBasedWSS4JInInterceptor INSTANCE - = new PolicyBasedWSS4JInInterceptor(); private static final Logger LOG = LogUtils.getL7dLogger(PolicyBasedWSS4JInInterceptor.class); /** http://git-wip-us.apache.org/repos/asf/cxf/blob/0db1e238/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxOutInterceptor.java ---------------------------------------------------------------------- diff --git a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxOutInterceptor.java b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxOutInterceptor.java index eedf4f4..203b8af 100644 --- a/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxOutInterceptor.java +++ b/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/PolicyBasedWSS4JStaxOutInterceptor.java @@ -41,8 +41,6 @@ import org.apache.xml.security.stax.ext.OutboundSecurityContext; * */ public class PolicyBasedWSS4JStaxOutInterceptor extends WSS4JStaxOutInterceptor { - public static final PolicyBasedWSS4JStaxOutInterceptor INSTANCE - = new PolicyBasedWSS4JStaxOutInterceptor(); public void handleMessage(SoapMessage msg) throws Fault { AssertionInfoMap aim = msg.get(AssertionInfoMap.class);
