[java-idp-testbed COMMIT] in /trunk/src/main: java/sp/BaseSAMLController.java java/sp/SAML2Controller.java webapp/ind...

noreply at shibboleth.net noreply at shibboleth.net
Sun Sep 7 20:36:44 EDT 2014


Author: scantor
Date: Sun Sep  7 20:36:44 2014
New Revision: 281

URL: http://svn.shibboleth.net/view/java-idp-testbed?rev=281&view=rev
Log:
IDP-224 - kind of working SAML logout flow

Modified:
    trunk/src/main/java/sp/BaseSAMLController.java
    trunk/src/main/java/sp/SAML2Controller.java
    trunk/src/main/webapp/index.html

Modified: trunk/src/main/java/sp/BaseSAMLController.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/main/java/sp/BaseSAMLController.java?rev=281&r1=280&r2=281&view=diff
==============================================================================
--- trunk/src/main/java/sp/BaseSAMLController.java (original)
+++ trunk/src/main/java/sp/BaseSAMLController.java Sun Sep  7 20:36:44 2014
@@ -31,6 +31,7 @@
 import org.opensaml.messaging.decoder.MessageDecodingException;
 import org.opensaml.saml.common.SAMLObject;
 import org.opensaml.saml.saml2.binding.decoding.impl.HTTPPostDecoder;
+import org.opensaml.saml.saml2.binding.decoding.impl.HTTPRedirectDeflateDecoder;
 import org.opensaml.security.credential.Credential;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -71,4 +72,24 @@
             decoder.destroy();
         }
     }
-}
+
+    protected MessageContext<SAMLObject> decodeInboundMessageContextRedirect(HttpServletRequest servletRequest)
+            throws Exception {
+        HTTPRedirectDeflateDecoder decoder = new HTTPRedirectDeflateDecoder();
+        try {
+            decoder.setHttpServletRequest(servletRequest);
+            decoder.setParserPool(parserPool);
+            decoder.initialize();
+
+            decoder.decode();
+
+            return decoder.getMessageContext();
+        } catch (ComponentInitializationException | MessageDecodingException e) {
+            log.error("Error decoding inbound message context", e);
+            throw e;
+        } finally {
+            decoder.destroy();
+        }
+    }
+
+}

Modified: trunk/src/main/java/sp/SAML2Controller.java
URL: http://svn.shibboleth.net/view/java-idp-testbed/trunk/src/main/java/sp/SAML2Controller.java?rev=281&r1=280&r2=281&view=diff
==============================================================================
--- trunk/src/main/java/sp/SAML2Controller.java (original)
+++ trunk/src/main/java/sp/SAML2Controller.java Sun Sep  7 20:36:44 2014
@@ -4,6 +4,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.xml.namespace.QName;
 
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.net.URLBuilder;
@@ -17,12 +18,20 @@
 import org.opensaml.saml.common.messaging.context.SAMLEndpointContext;
 import org.opensaml.saml.common.messaging.context.SAMLPeerEntityContext;
 import org.opensaml.saml.common.xml.SAMLConstants;
+import org.opensaml.saml.ext.saml2aslo.Asynchronous;
 import org.opensaml.saml.saml2.binding.encoding.impl.HTTPPostEncoder;
 import org.opensaml.saml.saml2.binding.encoding.impl.HTTPRedirectDeflateEncoder;
+import org.opensaml.saml.saml2.common.Extensions;
 import org.opensaml.saml.saml2.core.AuthnRequest;
 import org.opensaml.saml.saml2.core.Issuer;
+import org.opensaml.saml.saml2.core.LogoutRequest;
+import org.opensaml.saml.saml2.core.LogoutResponse;
+import org.opensaml.saml.saml2.core.NameID;
 import org.opensaml.saml.saml2.core.NameIDPolicy;
+import org.opensaml.saml.saml2.core.RequestAbstractType;
 import org.opensaml.saml.saml2.core.Response;
+import org.opensaml.saml.saml2.metadata.Endpoint;
+import org.opensaml.saml.saml2.metadata.SingleLogoutService;
 import org.opensaml.saml.saml2.metadata.SingleSignOnService;
 import org.opensaml.xmlsec.SignatureSigningParameters;
 import org.opensaml.xmlsec.context.SecurityParametersContext;
@@ -46,16 +55,18 @@
 	@RequestMapping(value="/InitSSO/Redirect", method=RequestMethod.GET)
 	public void initSSORequestRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
 		AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
-		authnRequest.setDestination(getDestinationRedirect(servletRequest));
-		MessageContext<SAMLObject> messageContext = buildOutboundMessageContext(authnRequest, SAMLConstants.SAML2_REDIRECT_BINDING_URI);
+		authnRequest.setDestination(getDestinationRedirect(servletRequest, "SSO"));
+		MessageContext<SAMLObject> messageContext = buildOutboundMessageContext(authnRequest,
+		        buildIdpSsoEndpoint(SAMLConstants.SAML2_REDIRECT_BINDING_URI, authnRequest.getDestination()));
 		encodeOutboundMessageContextRedirect(messageContext, servletResponse);
 	}
 
 	@RequestMapping(value="/InitSSO/POST", method=RequestMethod.GET)
 	public void initSsoRequestPost(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
 		AuthnRequest authnRequest = buildAuthnRequest(servletRequest);
-		authnRequest.setDestination(getDestinationPost(servletRequest));
-		MessageContext<SAMLObject> messageContext = buildOutboundMessageContext(authnRequest, SAMLConstants.SAML2_POST_BINDING_URI);

[... 272 lines stripped ...]


More information about the commits mailing list