我的CAS安装有个奇怪的问题。最近,我们激活了RememberMe功能,使RememberMe上的票据具有3个月的有效性。
当我的客户端应用程序的会话到期时,我被送回CAS
https://urlOfmyCas/login?service=urlOfClient即使CASTGC在那里,并且有效的CAS再次向我显示登录页面。如果我在没有服务参数的情况下调用上面的URL,就会被重定向到“登录成功”页面,这样CAS就知道我已经登录了。
我希望CAS签入cookie,并将我发送回我的客户端应用程序,除非我发送更新参数。
我是在安装CAS时搞砸了什么,还是这是一种预期的行为?
发布于 2014-03-06 11:24:51
今天看来我终于找到了答案。
CAS正在创建一个有效期为3个月的长期票据(不管您在ticketExpirationPolicies.xml中指定的过期时间是什么)。文档 for rememberMeExpirationPolicy中指定的值仅用于ticketCleaner。因此,即使cookie仍然存在,清洁工也可能已经在票证注册中排除了TGT。
如果您调用没有服务参数的/login,系统只检查cookie中是否有TGTid,而不检查票证注册表,因此它显示了成功登录页面,这让我有点困惑。
让我陷入麻烦的是,我假设org.jasig.cas.ticket.support.RememberMeDelegatingExpirationPolicy中使用的过期值也是以秒为单位的(就像默认配置中的那样),但是这个类需要毫秒的值。我本应该检查一下的,但当我试图把它设定为3个月,而且票有3个月的有效期(所以我想得到我想要的),加上上面一段提到的奇怪行为.最后是我的错误。
https://stackoverflow.com/questions/22195323
复制相似问题