[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