|
@@ -46,6 +46,16 @@ public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint,
|
|
|
|
|
|
private ServiceProperties serviceProperties;
|
|
|
private String loginUrl;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Determines whether the Service URL should include the session id for the specific user. As of CAS 3.0.5, the
|
|
|
+ * session id will automatically be stripped. However, older versions of CAS (i.e. CAS 2), do not automatically
|
|
|
+ * strip the session identifier (this is a bug on the part of the older server implementations), so an option to
|
|
|
+ * disable the session encoding is provided for backwards compatibility.
|
|
|
+ *
|
|
|
+ * By default, encoding is enabled.
|
|
|
+ */
|
|
|
+ private boolean encodeServiceUrlWithSessionId = true;
|
|
|
|
|
|
//~ Methods ========================================================================================================
|
|
|
|
|
@@ -59,7 +69,7 @@ public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint,
|
|
|
throws IOException, ServletException {
|
|
|
final HttpServletRequest request = (HttpServletRequest) servletRequest;
|
|
|
final HttpServletResponse response = (HttpServletResponse) servletResponse;
|
|
|
- final String urlEncodedService = response.encodeURL(this.serviceProperties.getService());
|
|
|
+ final String urlEncodedService = this.encodeServiceUrlWithSessionId ? response.encodeURL(this.serviceProperties.getService()) : this.serviceProperties.getService();
|
|
|
|
|
|
final StringBuffer buffer = new StringBuffer(255);
|
|
|
|
|
@@ -94,4 +104,8 @@ public class CasProcessingFilterEntryPoint implements AuthenticationEntryPoint,
|
|
|
public void setServiceProperties(final ServiceProperties serviceProperties) {
|
|
|
this.serviceProperties = serviceProperties;
|
|
|
}
|
|
|
+
|
|
|
+ public void setEncodeServiceUrlWithSessionId(final boolean encodeServiceUrlWithSessionId) {
|
|
|
+ this.encodeServiceUrlWithSessionId = encodeServiceUrlWithSessionId;
|
|
|
+ }
|
|
|
}
|