Author: coheigea
Date: Fri Sep 30 14:52:13 2011
New Revision: 1177685
URL: http://svn.apache.org/viewvc?rev=1177685&view=rev
Log:
Make sure to try the message exchange for the TokenStore before creating a new
one
Modified:
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
Modified:
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java?rev=1177685&r1=1177684&r2=1177685&view=diff
==============================================================================
---
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
(original)
+++
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/IssuedTokenInterceptorProvider.java
Fri Sep 30 14:52:13 2011
@@ -31,6 +31,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;
@@ -82,13 +83,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/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java?rev=1177685&r1=1177684&r2=1177685&view=diff
==============================================================================
---
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
(original)
+++
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/KerberosTokenInterceptorProvider.java
Fri Sep 30 14:52:13 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/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java?rev=1177685&r1=1177684&r2=1177685&view=diff
==============================================================================
---
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
(original)
+++
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/policy/interceptors/SecureConversationTokenInterceptorProvider.java
Fri Sep 30 14:52:13 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/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java?rev=1177685&r1=1177684&r2=1177685&view=diff
==============================================================================
---
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
(original)
+++
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSTokenValidator.java
Fri Sep 30 14:52:13 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/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
URL:
http://svn.apache.org/viewvc/cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java?rev=1177685&r1=1177684&r2=1177685&view=diff
==============================================================================
---
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
(original)
+++
cxf/branches/2.4.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/wss4j/policyhandlers/AbstractBindingBuilder.java
Fri Sep 30 14:52:13 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());
}