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单点登录,退出后ticket失效报出异常解决办法——换jar包 把客户端的 casclient.jar 包换成我的这个。
CAS单点登录,退出后ticket失效报出异常解决办法——换jar包 把客户端的 casclient.jar 包换成我的这个。
本文将深入探讨如何利用Spring Boot、CAS 5.3、Shiro、Pac4J这四个强大的工具来构建一个高效且用户友好的REST接口,以获取CAS(Central Authentication Service)票据,避免用户被重定向到CAS服务器的登录页面。...
2. TGT:Ticket Granting Ticket是CAS服务器为用户成功验证后生成的一次性票据,用户后续访问其他受保护的应用时,只需提供这个TGT,而无需再次输入凭证。 3. 服务验证:当用户尝试访问一个受CAS保护的应用时,应用...
**Cas入门及SpringSecurity集成CasDemo详解** CAS(Central Authentication Service)是一种开源的单点登录(Single Sign-On,SSO)框架,它为各种应用程序提供了一种集中式的身份验证服务。在本文中,我们将深入...
对于CAS Server,实现负载均衡有多种策略,例如使用反向代理、轮询或者基于会话粘滞性的策略。会话粘滞性允许将特定用户的请求始终路由到处理其初始请求的同一服务器,以保持会话状态的一致性。在CAS中,采用Ticket...
CAS 是建立在开放的协议之上的,支持多层 SSO 能力,能够与多种语言和平台集成。 CAS 的总体架构包括 CAS 服务器和 CAS 客户端两个部分。CAS 服务器是一个基于 Java 的 Web 应用程序,使用 Spring 技术,支持 ...
压缩包中包含的文档将指导你如何配置CAS客户端,包括在Spring或Web.xml中添加必要的配置项,设置服务URL,以及处理TGT(Ticket Granting Ticket)和ST(Service Ticket)。 3. **CAS4.2.7源码**: CAS 4.2.7是CAS...
其核心流程包括:用户首次访问受保护资源时会被重定向到CAS服务器进行身份验证,成功后服务器返回一个票据(Ticket),客户端通过这个票据访问资源,资源服务器验证票据有效后允许访问。 2. Java实现:CAS服务器是...
<cas:proxyGrantingTicket>PGT-1-...</cas:proxyGrantingTicket> </cas:authenticationSuccess> </cas:serviceResponse> ``` 以上便是通过RESTful接口实现CAS票据获取与验证的基本流程。在整个过程中,需要注意...
### SSO CAS Server 二次开发说明文档 #### 环境搭建 为了便于进行二次开发,推荐使用Maven overlays特性来构建开发环境。这样可以利用最新版本的资源文件覆盖现有WAR包中的文件,无需手动导入整个`cas-server-...
其流程主要包括:服务请求、重定向到CAS服务器、用户身份验证、返回Ticket、服务验证Ticket并获取用户信息。 2. CAS组件: - CAS Server:负责处理用户的登录请求,验证用户身份,并生成Ticket。 - CAS Client:...
CAS协议通过代理票据(Proxy Ticket)和服务票据(Service Ticket)机制,确保用户只需要在CAS服务器上验证一次身份,之后便可以在已集成CAS的服务之间自由跳转,无需重复登录。这大大提高了用户体验,并增强了安全...
### CAS Server 4.1 二次开发说明 #### 概述 CAS (Central Authentication Service) 是一项由耶鲁大学发起的开源项目,旨在为Web应用系统提供可靠且灵活的单点登录(Single Sign-On, SSO)解决方案。随着业务场景的...
如果用户通过了身份验证,CAS会返回一个服务票据(Service Ticket)给用户,然后用户带着这个票据返回到最初请求的应用。应用再将票据发送回CAS服务器进行验证,验证成功后,应用允许用户访问。 **SSO之CAS实现流程...
CAS 协议 票据、url 介绍,包括 cas1.0 和 cas2.0 CAS 协议是一个基于 HTTP 的协议,分为两部分:票据(Ticket)和 URL。CAS 协议的主要目的是提供单点登录(SSO)功能,实现用户的身份验证和授权。 票据(Ticket...
spring+springmvc+shiro+cas单点登录实例 springmvc+spring+shiro+cas单点登录实例 加入了登录验证码认证,修改了下首页样式,不过样式没有弄好,很丑的,有空自己再弄下 说明:cas-server是单点登录服务端,用的是...
4. CAS验证凭证,如果有效,生成TGT(Ticket-Granting Ticket)并存储在服务器端,同时创建TGC(Ticket-Granting Cookie)发送给客户端。 5. CAS生成ST(Service Ticket),用于授权访问特定服务,并将用户重定向回...
四、CAS单点登录原理 CAS单点登录的原理是基于Ticket机制的。下面将详细介绍CAS单点登录的原理: 1. 用户请求资源 当用户请求资源时,客户端会将用户重定向到CAS服务器端,进行身份验证。 2. CAS服务器端认证 ...
4. **安全策略**:设置适当的票据管理策略,如票据过期时间、重放攻击防护等,以增强系统安全性。 **四、文件结构解析** - `favicon.ico`:网站的图标文件,通常在浏览器的地址栏显示。 - `index.jsp`:可能是一个...