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); } }
