[java-identity-provider COMMIT] in /trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl: AbstractOutgoi...
noreply at shibboleth.net
noreply at shibboleth.net
Fri Nov 13 09:37:49 EST 2015
Author: serac
Date: Fri Nov 13 09:37:48 2015
New Revision: 7992
URL: http://svn.shibboleth.net/view/java-identity-provider?rev=7992&view=rev
Log:
IDP-862 Improve CAS samlValidate compatibility.
https://issues.shibboleth.net/jira/browse/IDP-862
1. Make SOAP namespace prefix SOAP-ENV as required by some clients.
2. Add missing required attributes to Response element.
Modified:
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationFailureMessageAction.java
trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationSuccessMessageAction.java
Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java?rev=7992&r1=7991&r2=7992&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java (original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/AbstractOutgoingSamlMessageAction.java Fri Nov 13 09:37:48 2015
@@ -25,6 +25,7 @@
import net.shibboleth.idp.cas.protocol.TicketValidationResponse;
import net.shibboleth.idp.profile.ActionSupport;
import org.opensaml.core.xml.config.XMLObjectProviderRegistrySupport;
+import org.opensaml.core.xml.util.XMLObjectSupport;
import org.opensaml.messaging.context.MessageContext;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLObject;
@@ -32,6 +33,10 @@
import org.opensaml.saml.common.messaging.context.SAMLBindingContext;
import org.opensaml.saml.common.xml.SAMLConstants;
import org.opensaml.saml.saml1.core.Response;
+import org.opensaml.soap.messaging.context.SOAP11Context;
+import org.opensaml.soap.soap11.Body;
+import org.opensaml.soap.soap11.Envelope;
+import org.opensaml.soap.util.SOAPConstants;
import org.springframework.webflow.execution.Event;
import org.springframework.webflow.execution.RequestContext;
@@ -42,6 +47,12 @@
*/
public abstract class AbstractOutgoingSamlMessageAction extends
AbstractCASProtocolAction<TicketValidationRequest, TicketValidationResponse> {
+
+ /** SOAP envelope needed for old/broken CAS clients. */
+ private QName ENVELOPE_NAME = new QName(SOAPConstants.SOAP11_NS, Envelope.DEFAULT_ELEMENT_LOCAL_NAME, "SOAP-ENV");
+
+ /** SOAP body needed for old/broken CAS clients. */
+ private QName BODY_NAME = new QName(SOAPConstants.SOAP11_NS, Body.DEFAULT_ELEMENT_LOCAL_NAME, "SOAP-ENV");
/** CAS namespace. */
protected static final String NAMESPACE = "http://www.ja-sig.org/products/cas/";
@@ -66,6 +77,14 @@
final SAMLBindingContext bindingContext = new SAMLBindingContext();
bindingContext.setBindingUri(SAMLConstants.SAML1_SOAP11_BINDING_URI);
msgContext.addSubcontext(bindingContext);
+
+ // Ensure message uses SOAP-ENV ns prefix required by old/broken CAS clients
+ final Envelope envelope = (Envelope) XMLObjectSupport.buildXMLObject(ENVELOPE_NAME);
+ envelope.setBody((Body) XMLObjectSupport.buildXMLObject(BODY_NAME));
+ final SOAP11Context soapCtx = new SOAP11Context();
+ soapCtx.setEnvelope(envelope);
+ msgContext.addSubcontext(soapCtx);
+
profileRequestContext.setOutboundMessageContext(msgContext);
return ActionSupport.buildProceedEvent(this);
Modified: trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationFailureMessageAction.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationFailureMessageAction.java?rev=7992&r1=7991&r2=7992&view=diff
==============================================================================
--- trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationFailureMessageAction.java (original)
+++ trunk/idp-cas-impl/src/main/java/net/shibboleth/idp/cas/flow/impl/BuildSamlValidationFailureMessageAction.java Fri Nov 13 09:37:48 2015
@@ -20,7 +20,9 @@
import javax.annotation.Nonnull;
import javax.xml.namespace.QName;
+import net.shibboleth.idp.cas.protocol.TicketValidationRequest;
import net.shibboleth.idp.cas.protocol.TicketValidationResponse;
+import org.joda.time.DateTime;
import org.opensaml.profile.context.ProfileRequestContext;
import org.opensaml.saml.common.SAMLObject;
import org.opensaml.saml.saml1.core.Response;
@@ -42,8 +44,11 @@
@Nonnull final RequestContext springRequestContext,
@Nonnull final ProfileRequestContext<SAMLObject, SAMLObject> profileRequestContext) {
+ final TicketValidationRequest request = getCASRequest(profileRequestContext);
[... 23 lines stripped ...]
More information about the commits
mailing list