`
dingjun1
  • 浏览: 213368 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

cas分析

阅读更多
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源码分析图

    CAS源码分析图,

    CAS协议分析

    CAS协议分析

    JAVA CAS深度分析

    JAVA CAS 深度分析 JAVA CAS(Compare And Swap)是一种原子操作,用于在多线程环境中实现同步机制。CAS 通过将内存值 V、旧的预期值 A 和要修改的新值 B 进行比较,如果预期值 A 和内存值 V 相同时,将内存值 V ...

    Java CAS 原理分析

    ### Java CAS 原理分析 #### 一、概述 CAS(Compare and Swap)作为一种重要的同步机制,在多线程环境中发挥着关键作用。它能够帮助开发者实现无锁编程,提高程序运行效率。本文将深入剖析Java中CAS的基本原理及其...

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    [置顶] 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 ...

    cas.rar_cas java_cas服务端代码_单点登录

    9. 监控与调试:理解和分析源代码可以帮助开发者更好地监控CAS服务器的运行状态,定位和解决可能出现的问题。可以使用日志工具记录服务器活动,或者利用调试工具分析代码执行流程。 综上所述,这个“cas.rar”...

    cas .net客户端的配置代码

    同时,建议结合邢少在博客园中提到的问题分析,学习如何避免和解决“循环重定向”问题。 总之,CAS .NET客户端的配置涉及多个环节,需要细心调试和优化。通过理解CAS协议的工作原理,结合适当的调试工具和日志,...

    cas单点登录需要的jar包

    源码分析** `cas-client-core-3.4.1-sources.jar` 包含了CAS客户端的源代码,这对于开发者理解CAS的工作机制、调试问题或进行定制化开发非常有帮助。源码中包含了如`org.jasig.cas.client.util....

    H3C CAS云计算软件套件《H3C CAS七日通》.rar

    8. **监控与运维**:熟悉H3C CAS的监控工具和日志分析功能,进行性能调优和故障排查。 9. **API与集成**:了解H3C CAS提供的RESTful API和SDK,以及如何与其他系统集成,实现自动化运维流程。 10. **开局配置实战*...

    CAS实现内外网映射访问的解决办法

    #### 背景分析 在使用CAS统一认证服务的过程中,由于Web应用工程中`web.xml`配置的CAS地址是固定的,而非动态地址,这就导致了当将Web应用服务器如Tomcat的端口映射到外网后,虽然可以通过外网访问应用,但在尝试...

    Cas Server 3.4.2 和 Cas Client 3.1.6 的源代码

    **Cas Server 3.4.2 和 Cas Client 3.1.6 源代码解析** CAS(Central Authentication Service)是一种广泛使用的开放源代码单一登录...同时,源代码分析还能帮助我们发现潜在的安全隐患,提升系统的整体安全性。

    cas

    标题中的“cas”通常指的是中央...如果你对CAS的源码分析、工具集成或凭证管理有深入的兴趣,这篇博客会是一个很好的学习资源。由于原始内容未提供,具体的细节和示例无法给出,但上述内容提供了可能涵盖的话题范围。

    ISCAS89的Verilog文件

    标题“ISCAS89的Verilog文件”指的是一个使用Verilog硬件描述语言编写的电路库,这个库包含了ISCAS89标准测试套件中的电路模型。Verilog是一种广泛应用的门级语言,用于描述数字逻辑系统,包括集成电路、微处理器和...

    单点登入--CAS3.0

    在本文中,我们将深入探讨基于CAS3.0的单点登录实现,这是一项广泛应用的身份验证服务。 CAS(Central Authentication Service)是耶鲁大学开发的开源项目,旨在提供一个安全、集中式的身份验证框架。CAS3.0是其较...

    cas4认证服务

    6. **监控和审计**:内置的日志记录和审计功能,便于跟踪和分析系统活动,确保安全。 7. **服务注册和管理**:CAS服务器有一个服务注册表,用于管理可以使用CAS认证的应用。 为了部署和配置CAS 4.0.1,你需要: 1. ...

    cas-5.2.0源码

    CAS 5.2.0 源码分析: 1. **架构设计**:CAS 的架构基于服务导向,分为服务端和客户端两部分。服务端负责用户的认证和会话管理,客户端则集成在各个应用系统中,处理与服务端的交互。源码中,你可以看到服务端和...

Global site tag (gtag.js) - Google Analytics