我在 Spring应用程序中使用Jasig CAS. CAS身份验证过滤器bean的配置如下所示:
<bean id="authenticationFilter" class="org.jasig.cas.client.authentication.AuthenticationFilter">
<property name="casServerLoginUrl" value="https://localhost:8443/cas/login"/>
<property name="service" value="https://localhost:8443/myapp/index.html"/>
</bean>
即一方面,身份验证过滤器将重定向到casServerLoginUrl属性中指定的url,另一方面CAS服务器将重定向回到service属性中指定的url.
有没有办法让服务属性的价值动态?我希望它在登录前包含最后一个请求的URL,并在成功登录CAS后分别重定向到此URL.
最佳答案 由于服务参数标识CAS-Server上的服务,因此无法动态更改.
问题是CAS服务器使用服务参数进行标识AND作为重定向位置URL.
如果您操作’CasAuthenticationFilter’中的service / redirect-URL,以便客户端应用程序将service参数设置为当前请求的url,则cas将为该特定URL创建一个票证.
这意味着1.票证验证将失败,并且2. Cas-Server为客户端应用程序上的每个请求页面创建新票证.