[java-identity-provider COMMIT] in /trunk: idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketRes...

noreply at shibboleth.net noreply at shibboleth.net
Tue Sep 6 06:47:39 EDT 2016


Author: serac
Date: Tue Sep  6 06:47:38 2016
New Revision: 8370

URL: http://svn.shibboleth.net/view/java-identity-provider?rev=8370&view=rev
Log:
IDP-1018 Revert ticket encoding, use URL-safe charset.

https://issues.shibboleth.net/jira/browse/IDP-1018
Ticket charset is now A-Za-z0-9=-_ using URL-safe Base64 component.

Modified:
    trunk/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketResponse.java
    trunk/idp-conf/src/main/resources/system/conf/cas-protocol-system.xml
    trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java

Modified: trunk/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketResponse.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketResponse.java?rev=8370&r1=8369&r2=8370&view=diff
==============================================================================
--- trunk/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketResponse.java	(original)
+++ trunk/idp-cas-api/src/main/java/net/shibboleth/idp/cas/protocol/ServiceTicketResponse.java	Tue Sep  6 06:47:38 2016
@@ -17,14 +17,8 @@
 
 package net.shibboleth.idp.cas.protocol;
 
-import java.net.MalformedURLException;
-
-import net.shibboleth.utilities.java.support.collection.Pair;
 import net.shibboleth.utilities.java.support.logic.Constraint;
-import net.shibboleth.utilities.java.support.net.URISupport;
-import net.shibboleth.utilities.java.support.net.URLBuilder;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+import org.springframework.web.util.UriComponentsBuilder;
 
 import javax.annotation.Nonnull;
 
@@ -34,9 +28,6 @@
  * @author Marvin S. Addison
  */
 public class ServiceTicketResponse {
-    /** Logger. */
-    private final Logger logger = LoggerFactory.getLogger(ServiceTicketResponse.class);
-
     /** Service URL */
     @Nonnull
     private final String service;
@@ -90,24 +81,8 @@
      * @return URL that may be used to redirect to a service with a granted ticket.
      */
     public String getRedirectUrl() {
-        try {
-            final URLBuilder builder = new URLBuilder(service);
-            builder.getQueryParams().add(new Pair<>(getTicketParameterName(), ticket));
-            return builder.buildURL();
-        } catch (MalformedURLException e) {
-            if (logger.isDebugEnabled()) {
-                logger.debug("Error decoding URL {}", service, e);
-            } else {
-                logger.warn("Error decoding URL {}", service);
-            }
-            // Fall back to appending the ticket to service URL
-            final char sep;
-            if (service.indexOf('?') > -1) {
-                sep = '&';
-            } else {
-                sep = '?';
-            }
-            return service + sep + getTicketParameterName() + '=' + URISupport.doURLEncode(ticket);
-        }
+        final UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(service);
+        builder.queryParam(getTicketParameterName(), ticket);
+        return builder.build().toUriString();
     }
 }

Modified: trunk/idp-conf/src/main/resources/system/conf/cas-protocol-system.xml
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/main/resources/system/conf/cas-protocol-system.xml?rev=8370&r1=8369&r2=8370&view=diff
==============================================================================
--- trunk/idp-conf/src/main/resources/system/conf/cas-protocol-system.xml	(original)
+++ trunk/idp-conf/src/main/resources/system/conf/cas-protocol-system.xml	Tue Sep  6 06:47:38 2016
@@ -16,7 +16,18 @@
 
     <bean id="encodingTicketService" class="net.shibboleth.idp.cas.ticket.impl.EncodingTicketService"
           c:service-ref="#{'%{idp.cas.StorageService:shibboleth.StorageService}'.trim()}"
-          c:sealer-ref="shibboleth.DataSealer"/>
+          c:sealer-ref="encodedTicketSealer"/>
+
+    <bean id="encodedTicketSealer" lazy-init="true"
+          class="net.shibboleth.utilities.java.support.security.DataSealer"
+          p:keyStrategy-ref="shibboleth.DataSealerKeyStrategy"
+          p:encoder-ref="base64Codec"
+          p:decoder-ref="base64Codec" />
+
+    <bean id="base64Codec" class="org.apache.commons.codec.binary.Base64"
+          c:lineLength="0"
+          c:lineSeparator="#{new byte[] {10} }"
+          c:urlSafe="true" />
 
     <alias name="encodingTicketService" alias="shibboleth.DefaultCASTicketService" />
 

Modified: trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java
URL: http://svn.shibboleth.net/view/java-identity-provider/trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java?rev=8370&r1=8369&r2=8370&view=diff
==============================================================================
--- trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java	(original)
+++ trunk/idp-conf/src/test/java/net/shibboleth/idp/test/flows/cas/LoginFlowTest.java	Tue Sep  6 06:47:38 2016
@@ -280,7 +280,6 @@

[... 8 lines stripped ...]


More information about the commits mailing list