我安装CAS时遇到了一个奇怪的问题。 最近,我们使用RememberMe上的故障单的3个月有效期激活了RememberMe功能。
当我的客户端应用程序的会话到期时,我被送回CAS
https://urlOfmyCas/login?service=urlOfClient
即使CASTGC cookie在那里,有效的CAS再次向我显示登录页面。 如果我在没有服务参数的情况下调用上面的URL,我会被重定向到“登录成功”页面,因此CAS知道我已登录。
我希望CAS检查cookie登录并将我发回给我的客户端应用程序,除非我发送续订参数。
我是否在CAS安装中弄乱了某些东西,或者这是预期的行为
答案 0 :(得分:0)
今天终于好像我找到了答案。
CAS正在创建一个有效期为3个月的长期票证(无论您在ticketExpirationPolicies.xml
中指定为到期超时)。 rememberMeExpirationPolicy
ticketCleaner
中指定的值仅适用于org.jasig.cas.ticket.support.RememberMeDelegatingExpirationPolicy
。因此,即使cookie仍然存在,清洁工也可能已经在票证登记处解散了TGT。
如果您在没有服务参数的情况下调用/ login,系统只检查cookie中是否有TGTid而不检查票证注册表,这就是为什么它显示成功登录页面,这让我感到困惑。
让我遇到麻烦的是我假设{{1}}中使用的到期值也在SECONDS中(就像它在默认配置中一样),但是这个类需要值为MILLISECONDS。 我应该检查一下,但是当我试图把它设置为3个月并且机票有3个月的有效期(所以我想得到我想要的东西),以及上面段落中提到的奇怪行为......我的错误最后。