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 2012/10/22 12:08:24 UTC
svn commit: r1400825 - in
/cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security:
SecurityConstants.java trust/STSUtils.java
Author: coheigea
Date: Mon Oct 22 10:08:23 2012
New Revision: 1400825
URL: http://svn.apache.org/viewvc?rev=1400825&view=rev
Log:
Merged revisions 1400820 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/branches/2.6.x-fixes
........
r1400820 | coheigea | 2012-10-22 10:58:40 +0100 (Mon, 22 Oct 2012) | 10 lines
Merged revisions 1400810 via git cherry-pick from
https://svn.apache.org/repos/asf/cxf/trunk
........
r1400810 | coheigea | 2012-10-22 10:06:41 +0100 (Mon, 22 Oct 2012) | 2 lines
[CXF-4590] - STSUtils: DRY refactoring and support Soap12 via property
........
........
Modified:
cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityConstants.java
cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSUtils.java
Modified: cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityConstants.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityConstants.java?rev=1400825&r1=1400824&r2=1400825&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityConstants.java (original)
+++ cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/SecurityConstants.java Mon Oct 22 10:08:23 2012
@@ -344,6 +344,12 @@ public final class SecurityConstants {
"ws-security.sts.disable-wsmex-call-using-epr-address";
/**
+ * Switch STS client to send Soap 1.2 messages
+ */
+ public static final String STS_CLIENT_SOAP12_BINDING =
+ "ws-security.sts.client-soap12-binding";
+
+ /**
*
* A Crypto object to be used for the STS. If this is not defined then the
* {@link STS_TOKEN_PROPERTIES} is used instead.
Modified: cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSUtils.java
URL: http://svn.apache.org/viewvc/cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSUtils.java?rev=1400825&r1=1400824&r2=1400825&view=diff
==============================================================================
--- cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSUtils.java (original)
+++ cxf/branches/2.5.x-fixes/rt/ws/security/src/main/java/org/apache/cxf/ws/security/trust/STSUtils.java Mon Oct 22 10:08:23 2012
@@ -31,6 +31,7 @@ import org.apache.cxf.endpoint.Endpoint;
import org.apache.cxf.endpoint.EndpointException;
import org.apache.cxf.endpoint.EndpointImpl;
import org.apache.cxf.message.Message;
+import org.apache.cxf.message.MessageUtils;
import org.apache.cxf.service.Service;
import org.apache.cxf.service.ServiceImpl;
import org.apache.cxf.service.model.BindingInfo;
@@ -82,21 +83,9 @@ public final class STSUtils {
}
public static STSClient getClient(Message message, String type) {
- STSClient client = (STSClient)message
- .getContextualProperty(SecurityConstants.STS_CLIENT);
- if (client == null) {
- if (type == null) {
- type = "";
- } else {
- type = "." + type + "-client";
- }
- client = new STSClient(message.getExchange().get(Bus.class));
- Endpoint ep = message.getExchange().get(Endpoint.class);
- client.setEndpointName(ep.getEndpointInfo().getName().toString() + type);
- client.setBeanName(ep.getEndpointInfo().getName().toString() + type);
- }
- return client;
+ return getClient(message, type, null);
}
+
public static STSClient getClient(Message message, String type, IssuedToken itok) {
STSClient client = (STSClient)message
.getContextualProperty(SecurityConstants.STS_CLIENT);
@@ -110,10 +99,14 @@ public final class STSUtils {
Endpoint ep = message.getExchange().get(Endpoint.class);
client.setEndpointName(ep.getEndpointInfo().getName().toString() + type);
client.setBeanName(ep.getEndpointInfo().getName().toString() + type);
- if (itok.getIssuerEpr() != null) {
+ if (MessageUtils.getContextualBoolean(message, SecurityConstants.STS_CLIENT_SOAP12_BINDING, false)) {
+ client.setSoap12();
+ }
+ if ((itok != null) && (itok.getIssuerEpr() != null)) {
//configure via mex
- boolean useEPRWSAAddrAsMEXLocation = !Boolean.valueOf((String)message
- .getContextualProperty(SecurityConstants.DISABLE_STS_CLIENT_WSMEX_CALL_USING_EPR_ADDRESS));
+ boolean useEPRWSAAddrAsMEXLocation = !Boolean.valueOf(
+ (String)message.getContextualProperty(
+ SecurityConstants.DISABLE_STS_CLIENT_WSMEX_CALL_USING_EPR_ADDRESS));
client.configureViaEPR(itok.getIssuerEpr(), useEPRWSAAddrAsMEXLocation);
}
}