Central Authentication Service
以cas-server-2.0.10版为例。
Class
edu.yale.its.tp.cas.servlet.Login
这是一个处理登录的类,
生成实例时初始化用于登录验证的处理类。
用登录验证:
1、 验证COOKIE(在认证服务器域中),COOKIE中存放ticketID.通过ticketID,可以从缓存中获取具体的ticket实例(存放了用户标识)。
2、 如果通过COOKIE中存放的ticketID从缓存中获取到ticket实例,而且当前不是想重新进行登录认证。就调用grantForService方法。
3、 grantForService会重新生成一个当前这次请求服务的TOKEN(注意ticketID和TOKEN的区别)
4、 确认跳转到其它应用的COOKIE值为enabled/ disabled。那么就转向确认跳转页面或都直接跳转到目的服务地址。目的服务地址通过service参数传递。
==============================================
如果没有记录tookieid的COOKIE,则通过页面传递的用户名和密码进行登录认证(也可以是其它的认证方式)。
登录成功则在认证服务器域上在客户端设置COOKIE(setMaxAge(-1)表示是内存COOKIE不进行保存,浏览器关闭失效)。
edu.yale.its.tp.cas.servlet.ServiceValidate
目标应用程序请求验证当前传递的TOKEN是否合法。
初始化时获取ServiceTicketCache和GrantorCache实例。
ServiceTicketCache中的ticket实例是用于每次访问受限服务时检验访问的服务得到了授权。每进行一次受限服务检证就产生一个实例。在确认成功后删除。一般发生在从一个已登录的服务跳转到另一个受限服务时。
GrantorCache中的ticket实例是登录成功时进行保存。每次进行验证是否登录成功时,只更新其用于超时验证的时间。用户登录一次产生一个实例。
通过传递的service和ticket验证在ServiceTicketCache中存放的ServiceTicket实例是否存在,且其对应的service是否为当前的Service。如果成功就输出一个XML文件。XML中有用户登录标识username.
edu.yale.its.tp.cas.servlet.CacheInit
这是一个监听器,在应用启动后,读取初始化数据。初始化Ticket的超时时间和设置用于认证用的类型(以. edu.yale.its.tp.cas.ticketTicketGrantingTicket为例)。ServiceTicketCache、GrantorCache为单实例。
edu.yale.its.tp.cas.ticket.GrantorCache
extends ActiveTicketCache implements TicketCache
这是一个用于ticket创建、保存、监测超期的类。
监测是用一个后台守护线路定时轮循,如果ticket超期就删除。
保存是通过一个唯一字符串标识与ticket实例(edu.yale.its.tp.cas.ticket.TicketGrantingTicket)进行关联用于确认。
edu.yale.its.tp.cas.ticket .ServiceTicketCache
extends OTUTicketCache
edu.yale.its.tp.cas.ticket.TicketGrantingTicket
认证存放的内容,主要是登录者姓名,是否超期。
交互图:
===待续===
- 大小: 198.3 KB
分享到:
相关推荐
CAS的原理分析
CAS源码分析图,
CAS协议分析
JAVA CAS 深度分析 JAVA CAS(Compare And Swap)是一种原子操作,用于在多线程环境中实现同步机制。CAS 通过将内存值 V、旧的预期值 A 和要修改的新值 B 进行比较,如果预期值 A 和内存值 V 相同时,将内存值 V ...
### Java CAS 原理分析 #### 一、概述 CAS(Compare and Swap)作为一种重要的同步机制,在多线程环境中发挥着关键作用。它能够帮助开发者实现无锁编程,提高程序运行效率。本文将深入剖析Java中CAS的基本原理及其...
[置顶] SSO单点登录系列2:cas客户端和cas服务端交互原理动画图解,cas协议终极分析 http://blog.csdn.net/ae6623/article/details/8848107 目 录 1 引言 4 1.1 摘要 4 1.2 范围 4 1.3 读者对象 4 1.4 关键词 4 2 ...
9. 监控与调试:理解和分析源代码可以帮助开发者更好地监控CAS服务器的运行状态,定位和解决可能出现的问题。可以使用日志工具记录服务器活动,或者利用调试工具分析代码执行流程。 综上所述,这个“cas.rar”...
同时,建议结合邢少在博客园中提到的问题分析,学习如何避免和解决“循环重定向”问题。 总之,CAS .NET客户端的配置涉及多个环节,需要细心调试和优化。通过理解CAS协议的工作原理,结合适当的调试工具和日志,...
源码分析** `cas-client-core-3.4.1-sources.jar` 包含了CAS客户端的源代码,这对于开发者理解CAS的工作机制、调试问题或进行定制化开发非常有帮助。源码中包含了如`org.jasig.cas.client.util....
8. **监控与运维**:熟悉H3C CAS的监控工具和日志分析功能,进行性能调优和故障排查。 9. **API与集成**:了解H3C CAS提供的RESTful API和SDK,以及如何与其他系统集成,实现自动化运维流程。 10. **开局配置实战*...
#### 背景分析 在使用CAS统一认证服务的过程中,由于Web应用工程中`web.xml`配置的CAS地址是固定的,而非动态地址,这就导致了当将Web应用服务器如Tomcat的端口映射到外网后,虽然可以通过外网访问应用,但在尝试...
**Cas Server 3.4.2 和 Cas Client 3.1.6 源代码解析** CAS(Central Authentication Service)是一种广泛使用的开放源代码单一登录...同时,源代码分析还能帮助我们发现潜在的安全隐患,提升系统的整体安全性。
标题中的“cas”通常指的是中央...如果你对CAS的源码分析、工具集成或凭证管理有深入的兴趣,这篇博客会是一个很好的学习资源。由于原始内容未提供,具体的细节和示例无法给出,但上述内容提供了可能涵盖的话题范围。
标题“ISCAS89的Verilog文件”指的是一个使用Verilog硬件描述语言编写的电路库,这个库包含了ISCAS89标准测试套件中的电路模型。Verilog是一种广泛应用的门级语言,用于描述数字逻辑系统,包括集成电路、微处理器和...
在本文中,我们将深入探讨基于CAS3.0的单点登录实现,这是一项广泛应用的身份验证服务。 CAS(Central Authentication Service)是耶鲁大学开发的开源项目,旨在提供一个安全、集中式的身份验证框架。CAS3.0是其较...
6. **监控和审计**:内置的日志记录和审计功能,便于跟踪和分析系统活动,确保安全。 7. **服务注册和管理**:CAS服务器有一个服务注册表,用于管理可以使用CAS认证的应用。 为了部署和配置CAS 4.0.1,你需要: 1. ...
CAS 5.2.0 源码分析: 1. **架构设计**:CAS 的架构基于服务导向,分为服务端和客户端两部分。服务端负责用户的认证和会话管理,客户端则集成在各个应用系统中,处理与服务端的交互。源码中,你可以看到服务端和...