[java-idp-testbed] branch master updated: Fix CAS integration tests

Tom Zeller tzeller at dragonacea.biz
Mon Aug 29 16:38:57 EDT 2016


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

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

View the commit online:
http://git.shibboleth.net/view/?p=java-idp-testbed.git;a=commit;h=b75eac7190c41524e82785046ae3adbfccfc42a1

The following commit(s) were added to refs/heads/master by this push:
       new  b75eac7   Fix CAS integration tests
b75eac7 is described below

commit b75eac7190c41524e82785046ae3adbfccfc42a1
Author: Tom Zeller <tzeller at dragonacea.biz>
AuthorDate: Mon Aug 29 15:38:55 2016 -0500

    Fix CAS integration tests
    
    We need the raw CAS ticket not decoded by Spring or the Servlet
    container.
---
 src/main/java/sp/CASController.java | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/main/java/sp/CASController.java b/src/main/java/sp/CASController.java
index 1c46608..920c259 100644
--- a/src/main/java/sp/CASController.java
+++ b/src/main/java/sp/CASController.java
@@ -35,6 +35,7 @@ import org.springframework.web.bind.annotation.RequestMethod;
 import net.shibboleth.idp.cas.protocol.ProtocolParam;
 import net.shibboleth.utilities.java.support.collection.Pair;
 import net.shibboleth.utilities.java.support.net.HttpServletSupport;
+import net.shibboleth.utilities.java.support.net.URISupport;
 import net.shibboleth.utilities.java.support.net.URLBuilder;
 
 @Controller
@@ -93,7 +94,7 @@ public class CASController {
 
         final URLBuilder urlBuilder = new URLBuilder(endpointURL);
 
-        final String ticket = servletRequest.getParameter(ProtocolParam.Ticket.id());
+        final String ticket = getRawParamValue(servletRequest, ProtocolParam.Ticket.id());
 
         final List<Pair<String, String>> queryParams = urlBuilder.getQueryParams();
         queryParams.add(new Pair<String, String>(ProtocolParam.Service.id(), baseUrl + casSPServicePath));
@@ -126,4 +127,18 @@ public class CASController {
             return "http://localhost:8080";
         }
     }
+
+    /**
+     * Get raw parameter value from query string.
+     * 
+     * @param servletRequest
+     * @param paramName parameter name
+     * @return the raw parameter value
+     */
+    private String getRawParamValue(HttpServletRequest servletRequest, String paramName) {
+        final String queryString = servletRequest.getQueryString();
+        final String rawParam = URISupport.getRawQueryStringParameter(queryString, paramName);
+        final String[] params = rawParam.split("=", 2);
+        return params[1];
+    }
 }

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


More information about the commits mailing list