技术分享 CAS单点登录 服务端配置 查看内容

cas入门之二十四:ticket的过期策略

老高 | 发布于 2017-05-05 14:26| 浏览()| 评论() | 收藏() | 点赞() | 打印

摘要: cas提供了可插拔式的ticket过期策略框架用于tgt和st。

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过期;

发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)

表情