我在Spring应用程序中使用Jasig CAS。 CAS Authentication Filter 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。
有没有办法让service
属性的值动态化?我希望它在登录前包含最后一个请求的URL,并在成功登录CAS后分别重定向到此URL。
答案 0 :(得分:1)
由于service参数标识CAS-Server上的服务,因此无法动态更改。 问题是CAS服务器使用服务参数进行标识AND作为重定向位置URL。
如果您操作'CasAuthenticationFilter'中的service / redirect-URL,以便客户端应用程序将service参数设置为当前请求的url,那么cas将为该特定URL创建一个票证。 这意味着1.票证验证将失败,并且2. Cas-Server为客户端应用程序上的每个请求页面创建新票证。
答案 1 :(得分:0)
当您调用cas登录页面时,您可以在客户端使用 service
参数
https://yourcas.com/cas/login?service=urlservice
CAS成功验证后将客户端重定向到此URL