|  | @@ -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;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  }
 |