CAS 入门及精通


20
集成spring security
主要为we链
casAuthenticationFilter casValidationFilter
22
创新融通 蓬勃生机
中国领先的金融IT综合服务商 中国领先的金融IT综合服务商
股票代码 NYSE:LFT

9
配置 DataStore
打开文件 %CATALINA_HOME%/webapps/cas/WEBINF/deployerConfigContext.xml,添加一个新的 , bean 标签,对于 SQL SERVER,内容如清单 4 所 标签, , (跟spring配置一样 配置一样): 示(跟spring配置一样):
11
使用 QueryDatabaseAuthenticationHandler
12
添加 passwordEncoder
另外,由于存放在数据库中的密码通常是加密过的, 另外,由于存放在数据库中的密码通常是加密过的, 所以 AuthenticationHandler 在匹配时需要知道使 用的加密方法, 用的加密方法,在 deployerConfigContext.xml 文 件中我们可以为具体的 AuthenticationHandler 类 property,指定加密器类, 配置一个 property,指定加密器类,比如对于 QueryDatabaseAuthenticationHandler: :
5
部署 CAS Server
CAS Server 是一个 Web 应用包,将前面下载的 应用包, cas-server-3.1.1-release.zip 解开,把其中的 cas解开, server-webapp-3.1.1.war 拷贝到 tomcat的 的 webapps 目录,并更名为 cas.war。由于前面已配 目录, 。 协议, tomcat, 置好 tomcat 的 https 协议,可以重新启动 tomcat, 然后访问: 然后访问:https://localhost:8443/cas ,如果能出 登录页面, 现正常的 CAS 登录页面,则说明 CAS Server 已经 部署成功。 部署成功。
18
CASFilter 可选参数
19
传递登录用户名
CAS 在登录成功过后,会给浏览器回传 Cookie,设 在登录成功过后, , 置新的到的 Service Ticket。但客户端应用拥有各自 。 的 Session,我们要怎么在各个应用中获取当前登录 , 用户的用户名呢? 用户的用户名呢?CAS Client 的 Filter 已经做好了 处理,在登录成功后, 处理,在登录成功后,就可以直接从 Session 的属 性中获取。 性中获取。
6
扩展认证接口
CAS Server 负责完成对用户的认证工作,它会处理 负责完成对用户的认证工作, 信息,用户名/密码 登录时的用户凭证 (Credentials) 信息,用户名 密码 对是最常见的凭证信息。 对是最常见的凭证信息。CAS Server 可能需要到数 据库检索一条用户帐号信息, 据库检索一条用户帐号信息,也可能在 XML 文件中 检索用户名/密码 密码, 获取等, 检索用户名/密码,还可能通过 LDAP Server 获取等, 在这种情况下, 在这种情况下,CAS 提供了一种灵活但统一的接口 和实现分离的方式, 和实现分离的方式,实际使用中 CAS 采用哪种方式 的基本协议分离开的, 认证是与 CAS 的基本协议分离开的,用户可以根据 认证的接口去定制和扩展。 认证的接口去定制和扩展。 扩展 AuthenticationHandler
CAS Seminar
CAS总括 总括
CAS 是 Yale 大学发起的一个开源项目,旨在为 大学发起的一个开源项目, Web 应用系统提供一种可靠的单点登录方法,CAS 应用系统提供一种可靠的单点登录方法, 的一个项目。 在 2004 年 12 月正式成为 JA-SIG 的一个项目。 CAS 具有以下特点: 具有以下特点: 1、开源的企业级单点登录解决方案。 、开源的企业级单点登录解决方案。 2、CAS Server 为需要独立部署的 Web 应用。 、 应用。 3、CAS Client 支持非常多的客户端 这里指单点登 、 支持非常多的客户端(这里指单点登 应用), 录系统中的各个 Web 应用 ,包括 Java, .Net, PHP, Perl, Apache, uPortal, Ruby 等。
14
部署客户端应用
单点登录的目的是为了让多个相关联的应用使用相同 的登录过程,通过本文的配置,实现单点登录, 的登录过程,通过本文的配置,实现单点登录,即只 需登录一次就可以访问这多个应用。 需登录一次就可以访问这多个应用。
15
与 CAS Server 建立信任关系
配置 Tomcat 的 SSL 协议 导入证书
13
部署依赖包
将 cas-server-support-jdbc-3.1.1.jar 拷贝到 %CATALINA_HOME%/webapps/cas/ WEB-INF/lib 目录。 目录。 数据库驱动 其他依赖包如: 其他依赖包如:commons-collections-3.2.jar, commons-dbcp-1.2.1.jar, commons-pool-1.3.jar
10
配置 AuthenticationHandler
使用哪个 AuthenticationHandler,需要在 , deployerConfigContext.xml 中设置,默认情况下, 中设置,默认情况下, CAS 使用一个简单的 username=password 的 AuthenticationHandler,在文件中可以找到如下一 , 行:<bean class=“org.jasig.cas.authentication.handler.sup port.SimpleTestUsernamePassword AuthenticationHandler” />,我们可以将其注释掉, ,我们可以将其注释掉, 换成我们希望的一个 AuthenticationHandler,比如, ,比如, 使用QueryDatabaseAuthenticationHandler。 使用 。
谢 谢!
2
图 1. CAS 基础协议
3
部署 CAS Server
协议. 配置 Tomcat 使用 Https 协议 部署 CAS Server 扩展认证接口 JDBC 认证方法 部署依赖包
4
配置 Tomcat 使用 Https 协议
如果希望 Tomcat 支持 Https,主要的工作是配置 , SSL 协议,其配置过程和配置方法可以参考 Tomcat 协议, 的相关文档。不过在生成证书的过程中,会有需要用 的相关文档。不过在生成证书的过程中, 到主机名的地方, 地址, 到主机名的地方,CAS 建议不要使用 IP 地址,而要 使用机器名或域名。 使用机器名或域名。
8
JDBC 认证方法
JDBC 认证方法支持多种数据库,DB2, Oracle, 认证方法支持多种数据库, MySql, Microsoft SQL Server 等均可,这里以 等均可, DB2 作为例子介绍。并且假设 作为例子介绍。并且假设DB2数据库名: 数据库名: 数据库名 CASTest,数据库登录用户名: db2user,数据库 ,数据库登录用户名: , 登录密码: db2password,用户信息表为: 登录密码: db2password,用户信息表为: userTable,该表包含用户名和密码的两个数据项分 , 别为 userName 和 password。 。 1. 配置 DataStore 2. 配置 AuthenticationHandler
16
配置 CAS Filter
将 cas-client-java-2.1.1.zip 改名为 cas-client-java2.1.1.jar 并拷贝到 casTest1/WEB-INF/lib目录下, 目录下, 目录下 文件, 修改 web.xml 文件,添加 CAS Filter。 。
17
CASFilter 必需的参数
7
扩展 AuthenticationHandler
CAS 提供扩展认证的核心是 AuthenticationHandler 接口 接口. 个需要实现的方法, 该接口定义了 2 个需要实现的方法,supports ()方 方 法用于检查所给的包含认证信息的Credentials 是否 法用于检查所给的包含认证信息的 受当前 AuthenticationHandler 支持;而 支持; authenticate() 方法则担当验证认证信息的任务,这 方法则担当验证认证信息的任务, 也是需要扩展的主要方法, 也是需要扩展的主要方法,根据情况与存储合法认证 信息的介质进行交互, 类型的值, 信息的介质进行交互,返回 boolean 类型的值, true 表示验证通过,false 表示验证失败。 表示验证通过, 表示验证失败。
合集下载

java cas 原理

java cas 原理

java cas 原理
CAS(Compare and Swap)是一种原子操作,用于在多线程环境下实现无锁数据结构。

Java中的CAS原理主要包括以下几个方面:
1. CAS操作包含三个参数:内存位置、预期值和新值。

当内存位置的值与预期值相等时,将内存位置的值更新为新值,否则不进行任何操作。

整个过程是原子的,即要么成功更新,要么保持不变。

2. Java中的CAS操作是通过sun.misc.Unsafe类实现的。

Unsafe 类提供了一组底层操作方法,可以对内存进行直接操作,从而实现高性能的数据结构和算法。

3. CAS操作通常需要配合volatile关键字使用,以确保变量的可见性。

当一个变量被声明为volatile时,它会保证所有线程都能看到该变量的最新值。

4. CAS操作虽然可以实现无锁数据结构,但在某些情况下仍然可能出现问题。

例如,当多个线程同时尝试更新同一个变量时,可能导致“ABA”问题。

为了解决这个问题,可以使用版本号或时间戳等机制来确保数据的一致性。

总之,Java中的CAS原理是一种基于原子操作的无锁数据结构
技术,通过Unsafe类提供的底层操作方法实现。

虽然CAS操作可以提高程序的性能,但在使用时需要注意数据一致性和并发控制等问题。

cas算法详解

cas算法详解

cas算法详解CAS算法,全称为比较-交换排序(Comparison and Swap),是一种基于比较和交换操作的排序算法。

它通过比较两个元素的大小关系,然后根据需要进行交换,以达到排序的目的。

CAS算法具有简单、直观、易于实现的特点,在实际应用中得到了广泛的应用。

CAS算法的核心思想是利用比较和交换操作来实现排序。

它通过不断地比较相邻的两个元素的大小关系,如果发现顺序不对就进行交换,直到所有元素都排好序为止。

CAS算法的基本思路如下:1. 首先,从待排序的元素中选择一个基准元素,通常选择第一个或最后一个元素作为基准。

2. 然后,将整个序列分为两部分,一部分是小于基准元素的,另一部分是大于基准元素的。

3. 接着,对两部分分别进行递归排序,直到每个子序列只有一个元素为止。

4. 最后,将排好序的子序列进行合并,得到最终的有序序列。

CAS算法的实现过程可以用伪代码表示如下:```function casSort(arr)if length(arr) ≤ 1 thenreturn arrelsepivot ← arr[0] // 选择第一个元素作为基准left ← [x in arr[1:] if x ≤ pivot] // 小于等于基准的部分right ← [x in arr[1:] if x > pivot] // 大于基准的部分return casSort(left) + [pivot] + casSort(right)end ifend function```CAS算法的时间复杂度为O(nlogn),其中n为待排序序列的长度。

它的空间复杂度为O(n),需要额外的空间来存储左右子序列。

CAS算法的优点在于实现简单、性能良好。

由于它只涉及比较和交换操作,没有复杂的计算过程,因此执行效率较高。

此外,CAS算法还具有稳定性好的特点,不会改变相同元素的相对顺序。

然而,CAS算法也存在一些缺点。

首先,它需要额外的空间来存储左右子序列,这增加了空间的开销。

cas机制详解

cas机制详解

cas机制详解CAS(Central Authentication Service)是一种常用的单点登录(SSO)协议,它通过在不同的应用系统之间共享用户认证信息,实现了用户只需要登录一次即可访问多个应用系统的功能。

CAS机制的核心思想是将用户认证的过程从应用系统中分离出来,并由一个独立的CAS服务器来完成。

具体来说,CAS机制包括以下几个主要组件:CAS客户端、CAS服务器以及应用系统。

用户访问一个需要认证的应用系统,该系统会检测用户是否已经登录。

如果用户尚未登录,系统将重定向到CAS服务器的登录页面。

用户在CAS服务器上输入用户名和密码进行登录。

CAS服务器验证用户的身份,如果验证通过,CAS服务器将生成一个全局唯一的票据(Ticket),并将该票据发送给用户的浏览器。

用户的浏览器将该票据发送给之前访问的应用系统。

应用系统收到票据后,会将它发送给CAS服务器进行验证。

CAS服务器验证票据的有效性,并返回给应用系统一个成功或失败的响应。

如果验证成功,应用系统会将用户登录信息与该应用系统的用户信息进行关联,并为用户创建一个本地的会话。

用户在之后访问该应用系统时,应用系统会直接使用本地会话进行认证,而不需要再次访问CAS服务器。

如果用户访问其他需要认证的应用系统,整个过程将会重复。

用户只需要登录一次,即可在多个应用系统中共享登录状态。

CAS机制的优点在于提供了一种简单且安全的用户认证解决方案。

通过将用户认证过程集中管理,CAS机制可以降低应用系统的开发和维护成本。

同时,CAS服务器作为一个独立的认证中心,可以提供更加强大和可扩展的认证功能,比如支持多种认证方式(如用户名密码认证、第三方认证等)、多因素认证等。

CAS机制还具有高度的可定制性。

CAS服务器可以根据不同的应用系统的需求,进行灵活的配置和扩展。

比如,可以通过CAS服务器实现单点注销功能,用户注销后会自动注销所有已登录的应用系统。

总结来说,CAS机制通过集中管理用户认证信息,实现了单点登录和认证的功能,提高了用户体验和系统安全性。

CAS编号详解

CAS编号详解

CAS编号详解CAS: chemical abstract service Register number.查询的网站有好多,一般使用google,输入物质名和CAS就行了。

美国化学摘要服务社( Chemical Abstracts Service)CAS 是一个由科学家组成的团队,它为科学研究和探索创造并提供最完整有效的数字信息环境。

如何利用化学命名/分子式/结构式来检索化学文献一、前言享有『世界化学文献之钥』美名的化学摘要,它是由美国化学摘要服务社( Chemical Abstracts Service, CAS)所出版的,其在化学化工文献上的贡献地位是不容忽视的。

同时CAS也因应潮流所需,另外研发了一套STN线上检索系统,这套检索系统包括了200多种型型色色的数据库,在众多的数据库中,其最大的卖点在于它有一个独门的数据库─REGISTRY FILE,这个数据库的特色就在于它是一个强大的化学字典数据库,它可以利用化学命名、化学分子式和化学结构式来检索化学领域相关的资料,若再配合STN线上其它的数据库,则不论寻找参考文献、专利、化学物质物化性、化学物质注册或商情资料都能无往不利。

二、关于REGISTRY FILE由CAS所研发出的STN线上检索系统中,REGISTRY FILE为其最独特的数据库,而其特色在于它具有化学字典功能的特性,为一含以化学物质来辨识进而收集资料的数据库。

REGISTRY FILE收录了1,600万的化学物质,其中包含了2,000万以上的化学品名称,同时它可以以化学名称、化学分子式或结构式来检索资料,它更提供了一强有力的化学物质登录号(CAS Registry number, CAS RNs),以做为查询复杂化学物质的独特且具权威的入门。

先来介绍什么是CAS RNs,它对化学物质而言,好象是化学物质的身份证字号一样,为唯一且特定的一种编号,每一种化合物都可能有很多种不同的命名,以一般IUPAC命名的4,4’-sulfonyldianiline 为例、它的商品名为Avlosulfon、而它的实验名为NSC 6091、进而CA索引命名为Benzenamine,4,4’-sulfonyl bis- 、至于其它的命名又如:1,1’-sulfonylbis﹝4-aminobenzene﹞等,在如此繁多的命名中,若以单一的命名来查询资料,势必会造成资料收集不全的困扰,但以这个例子来看,其化学物质登录号为【80-08-0】,以这唯一的信息来检索资料,可节省许多精力与时间,同时资料也会收集较齐全。

cas标准(一)

cas标准(一)

cas标准(一)CAS标准什么是CAS标准?CAS标准是指Central Authentication Service(中央认证服务)的标准规范。

它是一种单点登录协议,用于处理用户的身份验证和对受保护资源的授权。

CAS标准是由耶鲁大学发起的开源项目,在全球范围内得到广泛应用。

它提供了一个统一的认证系统,允许用户仅通过一次登录,即可访问多个受保护的应用程序。

CAS标准的特点CAS标准具有以下特点:1.单点登录:用户只需登录一次,即可访问所有受保护的应用程序,无需再次输入用户名和密码。

2.安全性:CAS使用令牌来验证用户身份,令牌在认证服务器和应用程序之间进行传递,确保用户信息的安全性。

3.可扩展性:CAS标准支持插件扩展,可以与其他认证系统集成,如LDAP、Active Directory等。

4.跨平台:CAS可以在不同的操作系统和开发框架中使用,如Java、.NET、PHP等。

CAS标准的工作流程CAS标准的工作流程如下:1.用户访问受保护的应用程序,并尚未登录。

2.应用程序检测到用户未登录,将用户重定向至CAS认证服务器。

3.用户在CAS认证服务器上输入用户名和密码进行登录。

4.CAS认证服务器验证用户的身份,若验证成功,生成一个令牌。

5.CAS认证服务器将令牌发送给应用程序。

6.应用程序接收到令牌,使用令牌向CAS认证服务器请求用户的属性信息。

7.CAS认证服务器使用令牌检索用户的属性信息,并将其返回给应用程序。

8.应用程序使用用户的属性信息进行授权操作。

CAS标准的应用场景CAS标准广泛用于以下场景:1.高校教育系统:学生、教职工可以通过CAS进行登录,并访问学校内部的资源管理系统、图书馆系统等。

2.企事业单位:公司员工可以通过CAS登录,访问OA系统、财务系统等。

3.社交网络:用户可以通过CAS登录,访问多个社交网络平台,并实现账号互联。

CAS标准的优势使用CAS标准的优势体现在以下方面:1.用户体验优化:CAS实现了单点登录,用户只需一次登录即可访问多个应用程序,提升了用户的便利性和使用体验。

cas标准

cas标准

cas标准CAS(Chemical Abstracts Service)标准是一种国际化的化学信息标准,由美国化学会(ACS)创建和维护。

CAS标准用于对化学物质进行唯一的标识和索引,以确保全球化学信息的一致性和可靠性。

CAS号码是由Chemical Abstracts Service为化学物质分配的唯一标识符,它对应于每个已知化学物质和混合物。

CAS标准的主要参考内容如下:1. CAS号码的结构和格式:CAS号码由三部分组成,即分组号、集团号和检查位。

分组号包含2至7个数字,标识了不同的化学物质类别;集团号包含2至7个数字和字母,标识了相似类型的化学物质;检查位是一个数字或字母,用于验证CAS号码的准确性。

2. CAS号码的分配规则:CAS号码按照一定的规则分配,其中包括如何确定分组号和集团号、如何验证CAS号码的准确性等。

CAS号码的分配是基于化学物质的化学和结构信息进行的,以确保每个化学物质都有唯一的CAS号码。

3. CAS号码的应用:CAS号码广泛应用于化学物质的识别、检索和管理。

在科学研究、化学品生产和销售、环境监测等领域,CAS号码被用于唯一标识化学物质。

科研人员可以通过CAS号码来获取化学物质的相关信息,如结构、性质、用途等。

化学品生产商和供应商可以通过CAS号码来管理他们的产品信息和库存情况。

环境监测机构可以通过CAS号码来追踪和识别环境中的化学物质。

4. CAS数据库的结构和搜索方法:CAS维护了一个全球最大的化学物质数据库,其中包含了大量化学物质的相关信息。

CAS数据库的结构和搜索方法是使用CAS号码进行化学物质检索的关键。

CAS数据库采用索引、关键词和化学结构等多种检索方式,可以按照化学物质的名称、分子式、CAS号码等进行搜索。

5. CAS号码的更新和维护:由于新的化学物质不断被发现和制备,CAS号码系统需要进行持续的更新和维护。

CAS号码的更新通过不断监测化学文献和专利数据库进行,确保CAS 号码与新的化学物质保持同步。

c语言中cas的用法

c语言中cas的用法CAS(Compare And Swap,比较并交换)是一种多线程并发控制的方法,被广泛应用于并发编程和并发数据结构中。

它主要用于解决多线程环境下的原子性问题,通过比较指定内存位置的值与给定预期值是否相等,若相等则将该位置的值替换为新的值。

本文将详细介绍CAS的原理、用法以及应用场景。

一、CAS的原理CAS的原理比较简单,其关键步骤如下:1. 比较内存中的值与预期值,若相等则进行下一步,否则返回失败;2. 使用新值替换内存中的旧值;3. 返回操作结果,表示是否替换成功。

CAS操作是由硬件指令提供的,一般是原子性的,即在多线程环境下能够保证线程安全。

简单来说,CAS操作通过比较指针指向的内存单元的值与预期值是否相等,若相等则进行替换,否则认为操作失败。

因此,CAS操作可以保证在多线程环境下只有一个线程能够成功执行更新操作,从而保证了线程的安全性。

二、CAS的用法在C语言中,CAS的用法主要涉及到两个函数/宏:CAS和__sync_bool_compare_and_swap。

下面分别介绍这两个用法。

1. CAS函数CAS函数是通过内嵌汇编实现的,可以直接在C语言中使用。

其通用格式如下:int CAS(int *ptr, int oldvalue, int newvalue)解释:- ptr:指向要被比较和替换的内存单元- oldvalue:预期的值- newvalue:新的值参数解释完毕,接下来就是展示如何使用CAS函数实现原子操作。

以一个简单的示例为例,假设有一个全局变量g_count,我们需要实现一个原子的自增操作,代码如下:int CAS(int *ptr, int oldvalue, int newvalue);int g_count = 0;void AtomicIncrease(){int expected = g_count;while (!CAS(&g_count, expected, expected + 1)){expected = g_count;}}解释:- 首先,我们将当前g_count的值保存在局部变量expected中;- 然后,通过循环不断尝试使用CAS函数进行原子自增操作;- 若CAS操作失败,则重新获取g_count的值,继续尝试。

cas的理解

cas的理解CAS的理解什么是CAS?CAS,全称为Compare and Swap,即比较并交换。

它是一种多线程同步机制,用于实现线程安全的数据操作。

在多线程环境下,由于多个线程可能同时访问同一个共享变量,因此会出现竞态条件(Race Condition)问题。

而CAS机制可以有效地解决这个问题。

CAS的原理CAS机制的核心思想是:先比较内存中的值是否与期望值相等,如果相等,则将新值写入内存;否则不做任何操作。

这个过程是原子性的,即不会被其他线程中断。

具体地说,在执行CAS操作时,需要提供三个参数:内存地址、期望值和新值。

然后CPU会将内存地址指向的值与期望值进行比较,如果相等,则将新值写入该内存地址;否则不做任何操作。

在执行CAS操作时可能会出现ABA问题。

例如,在一个计数器变量中先后执行了两次加1和减1操作,最终得到的结果与初始值相等。

此时如果有一个线程执行了如下操作:先读取了初始值A,并将其修改为B;然后另一个线程又将其修改为A,此时第一个线程再次读取该变量时发现它仍然等于A,则认为没有被修改过。

但实际上,该变量已经被修改过,只是恰好又被修改回了原来的值。

为了解决这个问题,可以使用带有版本号的CAS机制。

CAS的应用CAS机制在Java中广泛应用于Atomic类、ConcurrentHashMap、AQS等并发工具中。

它可以提高程序的并发性能和可伸缩性,并且使用起来比较简单。

Atomic类是一个原子类,提供了一组原子操作方法,例如getAndAdd、getAndSet等。

这些方法都是基于CAS机制实现的,可以保证线程安全。

ConcurrentHashMap是一个高效的线程安全哈希表实现,它采用了分段锁技术和CAS机制来保证线程安全。

AQS(AbstractQueuedSynchronizer)是一个抽象同步器,在Java中广泛应用于Lock、Semaphore、CountDownLatch等同步工具中。

cas 基础协议

cas 基础协议CAS(Central Authentication Service)是一种分布式的Web单点登录协议,它提供了集中登录和授权服务,可以实现多个应用系统间的用户身份认证和授权。

下面是对CAS基础协议的相关参考内容。

CAS协议的工作原理如下:1. 用户访问一个需要认证的应用系统;2. 应用系统检测到用户未登录,会将用户重定向到CAS Server;3. 用户在CAS Server上进行身份认证,输入用户名和密码;4. CAS Server校验用户的身份,如果验证成功,CAS Server会生成一个令牌(Ticket)并将其发送给用户的浏览器;5. 用户的浏览器将令牌发送回应用系统;6. 应用系统收到令牌后,将令牌发送给CAS Server进行校验;7. CAS Server校验通过后,应用系统将用户登录成功。

CAS协议的主要特点如下:1. 单点登录:用户只需登录一次,即可访问多个应用系统,无需重复输入用户名和密码,提高了用户体验;2. 集中授权:CAS Server负责集中管理用户的授权信息,应用系统根据CAS Server的认证结果进行权限控制;3. 分布式架构:CAS Server可以部署在多台服务器上,实现分布式认证和授权服务,提高了系统的稳定性和可扩展性;4. 可扩展性:CAS协议支持多种认证方式,如用户名密码认证、证书认证、第三方认证等,可以根据需求进行扩展和定制;5. 安全性:CAS协议采用加密算法保护用户的敏感信息,防止信息被窃取和篡改。

CAS协议的实现参考:1. CasClient:一个开源的Java客户端,实现了CAS协议的客户端功能,可用于应用系统的集成。

它提供了一组简单易用的API,帮助应用系统与CAS Server进行集成。

可以通过源代码来了解CAS协议的实现原理。

2. CAS Server:CAS Server是一个开源的CAS服务器端实现,支持Java、PHP、.NET等多种编程语言,可以根据需要选择合适的版本。

Cas详细配置

CAS框架配置详解博客分类:CAS一、概述单点登录(Single Sign On , 简称SSO )是目前比较流行的服务于企业业务整合的解决方案之一,SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

CAS(Central Authentication Service)是一款不错的针对Web 应用的单点登录框架,本文介绍了CAS 的原理、协议、在Tomcat 中的配置和使用,对于采用CAS 实现轻量级单点登录解决方案的入门读者具有一定指导作用。

二、CAS介绍CAS 是Yale 大学发起的一个开源项目,旨在为Web 应用系统提供一种可靠的单点登录方法,CAS 在2004 年12 月正式成为JA-SIG 的一个项目()。

CAS 具有以下特点:1)开源的企业级单点登录解决方案2)CAS Server 为需要独立部署的Web 应用3)CAS Client 支持非常多的客户端(指Web 应用),包括Java,.Net,PHP,Perl,Ruby 等三、CAS原理及协议从结构上看,CAS 包含两个部分: CAS Server 和 CAS Client。

CAS Server 需要独立部署,主要负责对用户的认证工作;CAS Client 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。

AS 最基本的协议过程:CAS Client 与受保护的客户端应用部署在一起,以Filter 方式保护受保护的资源。

对于访问受保护资源的每个Web 请求,CAS Client 会分析该请求的Http 请求中是否包含Service Ticket,如果没有,则说明当前用户尚未登录,于是将请求重定向到指定好的CAS Server 登录地址,并传递Service (也就是要访问的目的资源地址),以便登录成功过后转回该地址。

用户在第3 步中输入认证信息,如果登录成功,CAS Server 随机产生一个相当长度、唯一、不可伪造的Service Ticket,并缓存以待将来验证,之后系统自动重定向到Service 所在地址,并为客户端浏览器设置一个Ticket Granted Cookie(TGC),CAS Client 在拿到Service 和新产生的Ticket 过后,在第5,6 步中与CAS Server 进行身份合适,以确保Service Ticket 的合法性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档