相关文章推荐
近视的豆浆  ·  Python ...·  4 月前    · 
开朗的打火机  ·  Vue ts ...·  5 月前    · 
开朗的楼梯  ·  python - ARIMA ...·  10 月前    · 
幸福的开水瓶  ·  巧用Access ...·  1 年前    · 

下面引用了 cas官方 的架构图:
在这里插入图片描述
可以看到,主要分为两部分:CAS 客户端,CAS 服务端。通过不同的协议来通信,支持不同的业务场景。

CAS 服务端

CAS 服务端,主要职责是生产发行 ticket ,并使用 ticket 来进行 认证 授权 。当用户登录成功时,会创建一个 SSO 的 session ,并向用户颁发 TGT (ticket-granting ticket ,从名字我们就可以看出来,这是一种用来给 ticket 授权的 ticket。)。使用 TGT 作为 token ,通过浏览器重定向,将 ST(service ticket)传递给目标服务。目标服务所在的客户端接收到 ST 后,通过后端通道与 CAS 服务器通信,以验证 ST 有效性。

CAS 客户端

任何集成了 CAS 客户端程序,通过使用 CAS 支持的协议与 CAS 服务器通信的应用程序或平台,都可以称为 CAS 客户端。比如常见的:Confluence,JIRA 。当然不只是这些,你也可以集成到你的应用,是你的应用成为一个客户端。

支持的协议

支持了很多协议,常见的 CAS , OAuth 2.0 等。
当然,LDAP 也是支持的。对于一些比较老的系统,可能更多的需要支持 LDAP 。

  • web 层
  • ticket 子系统
  • 认证子系统

Web层是与所有外部系统(包括CAS客户端)进行通信的端点。Web层委托 ticket 子系统为 CAS客户端访问生成 ticket。SSO会话从成功身份认证并颁发及授予 ticket 开始,因此 ticket 子系统经常委派给认证子系统。

身份认证系统通常仅在SSO会话开始时处理请求,尽管在其他情况下也可以调用它(例如,强制身份验证)。

Spring 相关

CAS 使用了 Spring 框架 的许多方面。最值得注意的是 Spring MVC 和 Spring Webflow。Spring为核心CAS代码库以及部署程序提供了一个完整且可扩展的框架。通过挂钩CAS和Spring API扩展点,可以直接自定义或扩展CAS行为。Spring的一般知识有助于理解某些框架组件之间的相互作用,但这不是严格要求的。

CAS很大程度上也是基于Spring Boot的,这使它可以从Spring平台和第三方库的角度来看待问题,以创建一个独立的Web应用程序,而不必担心XML配置的麻烦。Spring Boot使CAS可以隐藏其组件及其配置的许多内部复杂性,而提供了自动配置模块,这些模块可以简单、自动地配置正在运行的应用程序上下文,而无需过多的人工干预。

CAS 架构解析下面引用了cas官方的架构图:可以看到,主要分为两部分:CAS 客户端,CAS 服务端。通过不同的协议来通信,支持不同的业务场景。CAS 服务端CAS 服务端,主要职责是生产发行 ticket,并使用 ticket 来进行认证和授权。当用户登录成功时,会创建一个 SSO 的 session ,并向用户颁发 TGT (ticket-granting ticket ,从名字我...
一. CAS 简介 CAS (Central Authentication Service)是 Yale大学发起的一个企业级的、开源的项目,旨在为 Web 应 用系统提供一种可靠的单点登录解决方法。 CAS 开始于2001年,并在2004年12月正式成为JA-SIG的一个项目。 二. CAS 特性 1) 开源的、多协议的 SSO 解决方案, CAS Server和 CAS Client通信支持多协议,如
单点登录:Single Sign On,简称 SSO SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS 框架 CAS (Central Authentication Service)是实现 SSO 单点登录的 框架 。 逻辑关系图:(注:图为转载) [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bnslZ5ZI-1649903084532)(https://blog.csdn.net/qq_25223941/article/details/78316
CAS 是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。 CAS 是 耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法, CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。 单点登录:Single Sign On,简称 SSO SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。 CAS 框架 CAS (Central Authentication Service)是实现 SSO 单点登录的 框架 。 2、盗一张学习 CAS 绝大多都看过的图以及执行部分分析 注:已分不清原创,此处就不给出地址了。 从结构上看...
前言: CAS ,Compare And Swap,即比较并交换。同步组件中大量使用 CAS 技术实现了Java多线程的并发操作。整个AQS同步组件、Atomic原子类操作等等都是以 CAS 实现的,甚至ConcurrentHashMap在1.8的版本中也调整为了 CAS +Synchronized。可以说 CAS 是整个JUC的基石。 为此我们可以专门测试一下, 首先写一行使用synchronized的代码 接着我们将代码使用cmd命令行进行测试 在cmd命令行执行javac编译和javap -c Java 字节码的指令
CAS 和synchronized都是用于实现多线程同步的机制,但它们的实现方式和应用场景有所不同。 CAS (Compare And Swap)是一种乐观锁机制,它通过比较内存中的值和期望值是否相等来判断是否需要更新,如果相等则更新,否则不更新。 CAS 的优点是无锁,可以避免线程的阻塞和唤醒,适用于并发量较大的情况。 synchronized是一种悲观锁机制,它通过获取锁来保证同一时刻只有一个线程可以执行临界区代码,其他线程需要等待锁的释放才能执行。synchronized的优点是可以保证线程安全,但缺点是会造成线程的阻塞和唤醒,适用于并发量较小的情况。 因此, CAS 适用于并发量较大的情况,可以提高程序的性能;而synchronized适用于并发量较小的情况,可以保证程序的正确性。
【莹伙丛】javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringAppl 【莹伙丛】Centos7 kernel 5.x 要说爱你不容易:Error: Connection activation failed: No suitable device found
【莹伙丛】Centos7 kernel 5.x 要说爱你不容易:Error: Connection activation failed: No suitable device found Rugod: 执行autorun.sh报错有遇到过吗 【莹伙丛】javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringAppl 【莹伙丛】我是如何设置 IDEA 以方便执行shell 脚本命令的? 【莹伙丛】Centos7 kernel 5.x 要说爱你不容易:Error: Connection activation failed: No suitable device found