CAS session timeout逻辑


发布于 2022-06-12 / 57 阅读 / 0 评论 /
cas中session的过期机制

一旦客户端通过了CAS-Server认证后,客户端就相当于完全独立了,即使再访问客户端的页面,客户端与CAS-Server之间也不在发生任何交互或者验证动作。

一直到客户端强制登出或者超时后,才会主动发起认证请求,CAS-Server才会被动的处理请求,判断是需要重定向还是重新认证通过。

也就是说,如果服务端超时时间设置的过短,并不会起作用,还是要等客户端超时后才行。

CAS-Server(TGT)超时时间  >=  Cas-Client的超时时间

可以进行实验,为CAS-Server和两个CAS-Client设置不同的超时时间,则在某一时刻,系统访问结果如下表所示:

场景编号

CAS server

CAS client1

CAS client2

访问client1是否要重新登陆

访问client2是否要重新登陆

场景一

未超时

未超时

未超时

不需要

不需要

场景二

未超时

超时

未超时

不需要

不需要

场景三

未超时

超时

超时

不需要

不需要

场景四

超时

超时

未超时

需要

不需要

场景五

超时

未超时

超时

不需要

需要

场景六

超时

超时

超时

需要

需要

cas服务端超时应该主要指的是TGT(ticket granting ticket)超时,如果TGT时间到期,则需要进行重新登录。这里时间单位是毫秒,默认是两小时。#tgt.timeToKillInSeconds是指在用户没有对系统进行任何操作的情况下,7200秒之后,也就是两个小时之后TGT会过期。过期之后需要重新登录操作。

cas.ticket.tgt.time-to-kill-in-seconds=7200

对应的配置类为org.jasig.cas.ticket.support.TimeoutExpirationPolicy。