首页编程java编程java中什么是cas,cas号是什么意思

java中什么是cas,cas号是什么意思

编程之家2023-10-1189次浏览

大家好,今天小编来为大家解答java中什么是cas这个问题,cas号是什么意思很多人还不知道,现在让我们一起来看看吧!

java中什么是cas,cas号是什么意思

cas认证是什么认证

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。

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

特点

java中什么是cas,cas号是什么意思

1、开源的企业级单点登录解决方案。

2、CAS Server为需要独立部署的 Web应用。

3、CAS Client支持非常多的客户端(这里指单点登录系统中的各个 Web应用),包括 Java,.Net, PHP, Perl, Apache, uPortal, Ruby等。

java中什么是cas,cas号是什么意思

原理和协议

从结构上看,CAS包含两个部分: CAS Server和 CAS Client。CAS Server需要独立部署,主要负责对用户的认证工作;

CAS Client负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。图是 CAS最基本的协议过程:

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的合法性。

在该协议中,所有与 CAS的交互均采用 SSL协议,确保,ST和 TGC的安全性。协议工作过程中会有 2次重定向的过程,但是 CAS Client与 CAS Server之间进行 Ticket验证的过程对于用户是透明的。

另外,CAS协议中还提供了 Proxy(代理)模式,以适应更加高级、复杂的应用场景,具体介绍可以参考 CAS官方网站上的相关文档。

扩展资料

使用 CAS在 Tomcat中实现单点登录中部署客户端应用

单点登录的目的是为了让多个相关联的应用使用相同的登录过程,本文在讲解过程中构造 2个简单的应用,分别以 casTest1和 casTest2来作为示例,它们均只有一个页面,显示欢迎信息和当前登录用户名。

这 2个应用使用同一套登录信息,并且只有登录过的用户才能访问,通过本文的配置,实现单点登录,即只需登录一次就可以访问这两个应用。

与 CAS Server建立信任关系

假设 CAS Server单独部署在一台机器 A,而客户端应用部署在机器 B上,由于客户端应用与 CAS Server的通信采用 SSL,因此,需要在 A与 B的 JRE之间建立信任关系。

首先与 A机器一样,要生成 B机器上的证书,配置 Tomcat的 SSL协议。

其次,下载http://blogs.sun.com/andreas/entry/no_more_unable_to_find的 InstallCert.java,运行“ java InstallCert compA:8443”命令,

并且在接下来出现的询问中输入 1。

这样,就将 A添加到了 B的 trust store中。如果多个客户端应用分别部署在不同机器上,那么每个机器都需要与 CAS Server所在机器建立信任关系。

配置 CAS Filter

准备好应用 casTest1和 casTest2过后,分别部署在 B和 C机器上,由于 casTest1和casTest2,B和 C完全等同,我们以 casTest1在 B机器上的配置做介绍,

假设 A和 B的域名分别为 domainA和 domainB。

将 cas-client-java-2.1.1.zip改名为 cas-client-java-2.1.1.jar并拷贝到 casTest1/WEB-INF/lib目录下,修改 web.xml文件,添加 CAS Filter,如清单 10所示:

清单 10.添加 CAS Filter

<web-app>...<filter>

<filter-name>CAS Filter</filter-name>

<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>

<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>

<param-value>https://domainA:8443/cas/login</param-value>

</init-param>

<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>

<param-value>https://domainA:8443/cas/serviceValidate</param-value>

</init-param>

<init-param>

<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>

<param-value>domainB:8080</param-value>

</init-param>

</filter>

<filter-mapping>

<filter-name>CAS Filter</filter-name>

<url-pattern>/protected-pattern/*</url-pattern>

</filter-mapping>

...

</web-app>

对于所有访问满足 casTest1/protected-pattern/路径的资源时,都要求到 CAS Server登录,如果需要整个 casTest1均受保护,可以将 url-pattern指定为“/*”。

从清单 10可以看到,我们可以为 CASFilter指定一些参数,并且有些是必须的,表格 1和表格 2中分别是必需和可选的参数:

表格 1. CASFilter必需的参数

表格 2. CASFilter可选参数

传递登录用户名

CAS在登录成功过后,会给浏览器回传 Cookie,设置新的到的 Service Ticket。但客户端应用拥有各自的 Session,我们要怎么在各个应用中获取当前登录用户的用户名呢?

CAS Client的 Filter已经做好了处理,在登录成功后,就可以直接从 Session的属性中获取,如清单 11所示:

清单 11.在 Java中通过 Session获取登录用户名

1//以下两者都可以

2session.getAttribute(CASFilter.CAS_FILTER_USER);

3session.getAttribute("edu.yale.its.tp.cas.client.filter.user");

在 JSTL中获取用户名的方法如清单 12所示:

清单 12.通过 JSTL获取登录用户名

1<c:out value="${sessionScope[CAS:'edu.yale.its.tp.cas.client.filter.user']}"/>

另外,CAS提供了一个 CASFilterRequestWrapper类,该类继承自HttpServletRequestWrapper,主要是重写了 getRemoteUser()方法,

只要在前面配置 CASFilter的时候为其设置“ edu.yale.its.tp.cas.client.filter.wrapRequest”参数为 true,就可以通过 getRemoteUser()方法来获取登录用户名,具体方法如清单 13所示:

清单 13.通过 CASFilterRequestWrapper获取登录用户名

1 CASFilterRequestWrapper reqWrapper=new CASFilterRequestWrapper(request);

2 out.println("The logon user:"+ reqWrapper.getRemoteUser());

参考资料来源:百度百科-CAS

参考资料来源:IBM中国-使用 CAS在 Tomcat中实现单点登录

什么是cas单点登录

CAS是一个单点登录框架,开始是由耶鲁大学的一个组织开发,后来归到apereo去管。同时CAS也是开源,遵循着apache 2.0协议,代码目前是在github上管理。单点登录:Single Sign On,简称SSO,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS是 Yale大学发起的一个开源项目,旨在为 Web应用系统提供一种可靠的单点登录方法,CAS在 2004年 12月正式成为 JA-SIG的一个项目。cas单点登录目前国内玉符科技技术实力可以,可以考察,望采纳!

cas号是什么意思

CAS号是什么意思 CAS号(CAS Registry Number或称CAS Number, CAS Rn, CAS),又称CAS编号,CAS登录号或CAS登记号码,是某种物质(化合物、高分子材料、生物序列(Biological sequences)、混合物或合金)的唯一的数字识别号码。

CAS是Central Authentication Service的缩写,中央认证服务,一种独立开放指令协议。CAS是耶鲁大学(Yale University)发起的一个开源项目,旨在为 Web应用系统提供一种可靠的单点登录方法,CAS在 2004年 12月正式成为 JA-SIG的一个项目。

特点

1、开源的企业级单点登录解决方案。

2、CAS Server为需要独立部署的 Web应用。

3、CAS Client支持非常多的客户端(这里指单点登录系统中的各个 Web应用),包括 Java,.Net, PHP, Perl, Apache, uPortal, Ruby等语言编写的各种web应用。

4、CAS属于Apache 2.0许可证,允许代码修改,再发布(作为开源或商业软件)。

文章分享结束,java中什么是cas和cas号是什么意思的答案你都知道了吗?欢迎再次光临本站哦!

java为什么javac(javac与java的区别)java开发用什么技术 java工程师需要掌握哪些技术