[java-idp-testbed] branch master updated: Add LogoutResponse capability to SLO endpoints.

Scott Cantor cantor.2 at osu.edu
Mon Nov 2 14:06:39 EST 2015


This is an automated email from the git hooks/post-receive script.

scantor pushed a commit to branch master
in repository java-idp-testbed.

The following commit(s) were added to refs/heads/master by this push:
       new  96f9da8   Add LogoutResponse capability to SLO endpoints.
96f9da8 is described below

commit 96f9da87f38cc11a1e5c89ea1c1b999a7f35805a
Author: Scott Cantor <cantor.2 at osu.edu>
AuthorDate: Mon Nov 2 14:06:51 2015 -0500

    Add LogoutResponse capability to SLO endpoints.
---
 src/main/java/sp/SAML2Controller.java | 23 ++++++++++++++++-------
 1 file changed, 16 insertions(+), 7 deletions(-)

diff --git a/src/main/java/sp/SAML2Controller.java b/src/main/java/sp/SAML2Controller.java
index fe5b5ad..6419eca 100644
--- a/src/main/java/sp/SAML2Controller.java
+++ b/src/main/java/sp/SAML2Controller.java
@@ -209,9 +209,10 @@ public class SAML2Controller extends BaseSAMLController {
     public ResponseEntity<String> handleSLOResponseRedirect(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
         final MessageContext<SAMLObject> messageContext = decodeInboundMessageContextRedirect(servletRequest);
         
-        if (!(messageContext.getMessage() instanceof LogoutResponse)) {
-            log.error("Inbound message was not a SAML 2 LogoutResponse");
-            return new ResponseEntity<>("Inbound message was not a SAML 2 LogoutResponse", HttpStatus.BAD_REQUEST);
+        if (messageContext.getMessage() instanceof LogoutRequest) {
+            servletRequest.setAttribute("success", "1");
+            finishSLOResponseRedirect(servletRequest, servletResponse);
+            return null;
         }
         
         final LogoutResponse response = (LogoutResponse) messageContext.getMessage();
@@ -230,9 +231,10 @@ public class SAML2Controller extends BaseSAMLController {
     public ResponseEntity<String> handleSLOResponsePOST(HttpServletRequest servletRequest, HttpServletResponse servletResponse) throws Exception {
         final MessageContext<SAMLObject> messageContext = decodeInboundMessageContextPost(servletRequest);
         
-        if (!(messageContext.getMessage() instanceof LogoutResponse)) {
-            log.error("Inbound message was not a SAML 2 LogoutResponse");
-            return new ResponseEntity<>("Inbound message was not a SAML 2 LogoutResponse", HttpStatus.BAD_REQUEST);
+        if (messageContext.getMessage() instanceof LogoutRequest) {
+            servletRequest.setAttribute("success", "1");
+            finishSLOResponsePost(servletRequest, servletResponse);
+            return null;
         }
         
         final LogoutResponse response = (LogoutResponse) messageContext.getMessage();
@@ -376,7 +378,14 @@ public class SAML2Controller extends BaseSAMLController {
         
         final StatusCode code = (StatusCode) builderFactory.getBuilder(StatusCode.DEFAULT_ELEMENT_NAME).buildObject(StatusCode.DEFAULT_ELEMENT_NAME);
         status.setStatusCode(code);
-        final String param = servletRequest.getParameter("success");
+        String param = servletRequest.getParameter("success");
+        if (param == null) {
+            final Object attr = servletRequest.getAttribute("success");
+            if (attr != null) {
+                param = (String) attr;
+            }
+        }
+        
         if (param != null && "1".equals(param)) {
             code.setValue(StatusCode.SUCCESS);
         } else {

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list