cas 提供了可插拔式的ticket过期策略框架用于tgt和st。在cas应用中,tgt和st的过期策略配置默认在cas/webapp/WEB-INF/spring-configuration/ticketExpirationPolicies.xml
文件中。在cas的过期策略中,并没有明确指出哪一种ticket应用于哪一种过期策略,但是我们根据类名,还是能够进行区分的。但是并不能说明这个过期策略只能用于这一种ticket,也就是说它的过期策略是人为划分的。
tgt的过期策略
1.org.jasig.cas.ticket.support.HardTimeoutExpirationPolicy
它的配置
<bean id="grantingTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.HardTimeoutExpirationPolicy">
<constructor-arg index="0" value="7200000" /> <!-- 单位是毫秒 -->
</bean>
在tgt创建之时起,两个小时之后则tgt过期,这个是硬性的没有商量的余地,所以类名有个hard;
2.org.jasig.cas.ticket.support.NeverExpiresExpirationPolicy
它的配置
<bean id="grantingTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.NeverExpiresExpirationPolicy">
</bean>
这个不用解释了;
3.org.jasig.cas.ticket.support.RememberMeDelegatingExpirationPolicy
它的配置
<bean id="grantingTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.RememberMeDelegatingExpirationPolicy">
<property name="sessionExpirationPolicy">
<bean class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
<constructor-arg index="0" value="XXXXXXXX" />
</bean>
</property>
<property name="rememberMeExpirationPolicy">
<bean class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
<constructor-arg index="0" value="XXXXXXXX" />
</bean>
</property>
</bean>
请参看:remember me 一节,
满足sessionExpirationPolicy或者rememberMeExpirationPolicy过期策略之一,则tgt过期;
4.org.jasig.cas.ticket.support.ThrottledUseAndTimeoutExpirationPolicy
它的配置
<bean id="grantingTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.ThrottledUseAndTimeoutExpirationPolicy">
p:timeToKillInMilliSeconds="7200000"
p:timeInBetweenUsesInMilliSeconds="5000"
</bean>
在tgt创建之后,上次应用距本次应用超过2小时或者小于5秒钟,只要满足其一,则tgt过期。
5.org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy
这个是cas对于tgt的默认配置,它的配置:
<bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
p:maxTimeToLiveInSeconds="${28800}"
p:timeToKillInSeconds="${7200}"/>
当用户在2个小时(7200秒)之内不动移动鼠标或者进行系统超过8个小时(28800秒),则tgt过期;
6.org.jasig.cas.ticket.support.TimeoutExpirationPolicy
它的配置
<bean id="grantingTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.TimeoutExpirationPolicy">
<constructor-arg index="0" value="7200000" /> <!-- 单位是毫秒 -->
</bean>
如果两个小时不动鼠标则tgt过期;
st的过期策略
1.org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy
它的配置
<util:constant id="SECONDS" static-field="java.util.concurrent.TimeUnit.SECONDS"/>
<bean id="serviceTicketExpirationPolicy" class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy"
c:numberOfUses="1" c:timeToKill="10" c:timeUnit-ref="SECONDS"/>
或者
<bean id="serviceTicketExpirationPolicy"
class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy">
<constructor-arg index="0" value="1" /> <!--使用次数 -->
<constructor-arg index="1" value="10000" /> <!-- 单位是毫秒 -->
</bean>
使用次数为1 次或者超过10秒没有应用均会引起st过期;
原文地址:
相关推荐
- CAS服务器收到注销请求后,会从session中移除所有加入单点登录范围内的session ID,并调用各应用接口销毁session中的TGT,同时使浏览器端的TGC失效。 - 下次用户访问任何应用时,流程将重新开始。 #### 四、CAS...
4. **Service Ticket (ST)**:当用户访问受保护的应用时,CAS Client会携带TGT向CAS Server请求服务票据ST,ST是针对特定服务的,每个服务请求都会生成一个新的ST。 **CAS实现流程:** 1. 用户尝试访问受保护的应用...
4. **TGT(Ticket Granting Ticket)**:在 CAS 流程中,用户首次登录时会获得一个全局的 TGT,这个票证可以用来生成后续的服务票证 ST,实现多应用的 SSO。 5. **服务注册**:CAS 服务器维护一个服务注册表,记录...
同时,学习如何处理票证的生命周期,包括TGT(Ticket Granting Ticket)和ST(Service Ticket)。 7. **定制化与扩展**:了解如何根据实际需求定制CAS,比如自定义认证处理器、实现自己的票证验证逻辑,或者与其他...
当用户成功登录IdP后,IdP会生成一个票据,如TGT(Ticket Granting Ticket),用户随后访问SP时,SP会向IdP请求ST(Service Ticket),以验证用户身份。 4. **SP与IdP的交互** SP在接收到用户的请求时,如果发现...