You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by co...@apache.org on 2011/09/30 16:53:39 UTC
svn commit: r1177688 - in
/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security:
policy/interceptors/ trust/ wss4j/policyhandlers/
Author: coheigea
Date: Fri Sep 30 14:53:38 2011
New Revision: 1177688
URL: http://svn.apache.org/viewvc?rev=1177688&view=rev
Log:
Make sure to try the message exchange for the TokenStore before creating a new one
Modified:
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java?rev=1177688&r1=1177687&r2=1177688&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java Fri Sep 30 14:53:38 2011
@@ -32,6 +32,7 @@ import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
+import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.ws.addressing.AddressingProperties;
import org.apache.cxf.ws.policy.AbstractPolicyInterceptorProvider;
import org.apache.cxf.ws.policy.AssertionInfo;
@@ -83,13 +84,18 @@ public class IssuedTokenInterceptorProvi
static final TokenStore getTokenStore(Message message) {
- TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
- if (tokenStore == null) {
- tokenStore = new MemoryTokenStore();
- message.getExchange().get(Endpoint.class).getEndpointInfo()
- .setProperty(TokenStore.class.getName(), tokenStore);
+ EndpointInfo info = message.getExchange().get(Endpoint.class).getEndpointInfo();
+ synchronized (info) {
+ TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
+ if (tokenStore == null) {
+ tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
+ }
+ if (tokenStore == null) {
+ tokenStore = new MemoryTokenStore();
+ info.setProperty(TokenStore.class.getName(), tokenStore);
+ }
+ return tokenStore;
}
- return tokenStore;
}
static class IssuedTokenOutInterceptor extends AbstractPhaseInterceptor<Message> {
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java?rev=1177688&r1=1177687&r2=1177688&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java Fri Sep 30 14:53:38 2011
@@ -30,6 +30,7 @@ import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
+import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.ws.policy.AbstractPolicyInterceptorProvider;
import org.apache.cxf.ws.policy.AssertionInfo;
import org.apache.cxf.ws.policy.AssertionInfoMap;
@@ -73,13 +74,18 @@ public class KerberosTokenInterceptorPro
static final TokenStore getTokenStore(Message message) {
- TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
- if (tokenStore == null) {
- tokenStore = new MemoryTokenStore();
- message.getExchange().get(Endpoint.class).getEndpointInfo()
- .setProperty(TokenStore.class.getName(), tokenStore);
+ EndpointInfo info = message.getExchange().get(Endpoint.class).getEndpointInfo();
+ synchronized (info) {
+ TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
+ if (tokenStore == null) {
+ tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
+ }
+ if (tokenStore == null) {
+ tokenStore = new MemoryTokenStore();
+ info.setProperty(TokenStore.class.getName(), tokenStore);
+ }
+ return tokenStore;
}
- return tokenStore;
}
static class KerberosTokenOutInterceptor extends AbstractPhaseInterceptor<Message> {
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java?rev=1177688&r1=1177687&r2=1177688&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java Fri Sep 30 14:53:38 2011
@@ -35,6 +35,7 @@ import org.apache.cxf.binding.soap.SoapM
import org.apache.cxf.common.logging.LogUtils;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.message.Message;
+import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.staxutils.W3CDOMStreamWriter;
import org.apache.cxf.ws.addressing.policy.MetadataConstants;
import org.apache.cxf.ws.policy.AbstractPolicyInterceptorProvider;
@@ -104,14 +105,18 @@ public class SecureConversationTokenInte
}
static final TokenStore getTokenStore(Message message) {
- TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
- if (tokenStore == null) {
- tokenStore = new MemoryTokenStore();
- message.getExchange().get(Endpoint.class).getEndpointInfo()
- .setProperty(TokenStore.class.getName(), tokenStore);
- message.getExchange().put(TokenStore.class.getName(), tokenStore);
+ EndpointInfo info = message.getExchange().get(Endpoint.class).getEndpointInfo();
+ synchronized (info) {
+ TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
+ if (tokenStore == null) {
+ tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
+ }
+ if (tokenStore == null) {
+ tokenStore = new MemoryTokenStore();
+ info.setProperty(TokenStore.class.getName(), tokenStore);
+ }
+ return tokenStore;
}
- return tokenStore;
}
static Assertion getAddressingPolicy(AssertionInfoMap aim, boolean optional) {
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java?rev=1177688&r1=1177687&r2=1177688&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java Fri Sep 30 14:53:38 2011
@@ -26,6 +26,7 @@ import org.w3c.dom.Element;
import org.apache.cxf.binding.soap.SoapMessage;
import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.message.Message;
+import org.apache.cxf.service.model.EndpointInfo;
import org.apache.cxf.ws.security.tokenstore.MemoryTokenStore;
import org.apache.cxf.ws.security.tokenstore.SecurityToken;
import org.apache.cxf.ws.security.tokenstore.TokenStore;
@@ -120,13 +121,18 @@ public class STSTokenValidator implement
}
static final TokenStore getTokenStore(Message message) {
- TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
- if (tokenStore == null) {
- tokenStore = new MemoryTokenStore();
- message.getExchange().get(Endpoint.class).getEndpointInfo()
- .setProperty(TokenStore.class.getName(), tokenStore);
+ EndpointInfo info = message.getExchange().get(Endpoint.class).getEndpointInfo();
+ synchronized (info) {
+ TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
+ if (tokenStore == null) {
+ tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
+ }
+ if (tokenStore == null) {
+ tokenStore = new MemoryTokenStore();
+ info.setProperty(TokenStore.class.getName(), tokenStore);
+ }
+ return tokenStore;
}
- return tokenStore;
}
protected boolean isValidatedLocally(Credential credential, RequestData data)
Modified: cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java?rev=1177688&r1=1177687&r2=1177688&view=diff
==============================================================================
--- cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java (original)
+++ cxf/trunk/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java Fri Sep 30 14:53:38 2011
@@ -353,8 +353,7 @@ public abstract class AbstractBindingBui
protected final TokenStore getTokenStore() {
EndpointInfo info = message.getExchange().get(Endpoint.class).getEndpointInfo();
synchronized (info) {
- TokenStore tokenStore =
- (TokenStore)message.getContextualProperty(TokenStore.class.getName());
+ TokenStore tokenStore = (TokenStore)message.getContextualProperty(TokenStore.class.getName());
if (tokenStore == null) {
tokenStore = (TokenStore)info.getProperty(TokenStore.class.getName());
}