diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/proxy/Cas20ProxyRetriever.java b/cas-client-core/src/main/java/org/jasig/cas/client/proxy/Cas20ProxyRetriever.java index 7b5450a..1dc986e 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/proxy/Cas20ProxyRetriever.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/proxy/Cas20ProxyRetriever.java @@ -99,9 +99,9 @@ public final class Cas20ProxyRetriever implements ProxyRetriever { private String constructUrl(final String proxyGrantingTicketId, final String targetService) { try { - return this.casServerUrl + "proxy" + "?pgt=" - + proxyGrantingTicketId + "&targetService=" - + URLEncoder.encode(targetService, "UTF-8"); + return this.casServerUrl + (this.casServerUrl.endsWith("/") ? "" : "/") + "proxy" + "?pgt=" + + proxyGrantingTicketId + "&targetService=" + + URLEncoder.encode(targetService, "UTF-8"); } catch (final UnsupportedEncodingException e) { throw new RuntimeException(e); } diff --git a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java index 8892e5d..49a154f 100644 --- a/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java +++ b/cas-client-core/src/main/java/org/jasig/cas/client/validation/AbstractUrlBasedTicketValidator.java @@ -102,7 +102,9 @@ public abstract class AbstractUrlBasedTicketValidator implements TicketValidator int i = 0; synchronized (buffer) { buffer.append(this.casServerUrlPrefix); - buffer.append("/"); + if (!this.casServerUrlPrefix.endsWith("/")) { + buffer.append("/"); + } buffer.append(suffix); for (final Iterator iter = urlParameters.entrySet().iterator(); iter.hasNext();) {