配置还有使用spring的方式,这里就不列出了,如果大家有兴趣,可以参考官方资料
至此,子系统已经接入CAS,当访问子系统的时候,如果没有经过认证,将会跳转到CAS服务器,登录后会自动返回到子系统,当然,这样做并没有实现单点登陆,因为子系统还没有设为登录状态.
单点登陆的实现
CAS服务端在认证通过后,会把当前认证通过的登陆用户名传递到子系统,当然,认证通过的用户名有可能与子系统的用户名不一样,那子系统就需要一个认证通过的用户名与子系统用户的映射,在子系统拿到通过认证的用户名,再找到对应的子系统用户,然后把该用户设为登陆状态,这样才真正实现了单点登陆.
2.x版本client获取CAS传递过来的用户名的方法:
CAS 在登录成功过后,会给浏览器回传 Cookie,设置新的到的 Service Ticket。但客户端应用拥有各自的 Session,我们要怎么在各个应用中获取当前登录用户的用户名呢?CAS Client 的 Filter 已经做好了处理,在登录成功后,就可以直接从 Session 的属性中获取
在 Java 中通过 Session 获取登录用户名
// 以下两者都可以
session.getAttribute(CASFilter.CAS_FILTER_USER);
session.getAttribute("edu.yale.its.tp.cas.client.filter.user");
|
通过 JSTL 获取登录用户名
<c:out value="${sessionScope[CAS:'edu.yale.its.tp.cas.client.filter.user']}"/>
|
通过 CASFilterRequestWrapper 获取登录用户名
CASFilterRequestWrapper reqWrapper=new CASFilterRequestWrapper(request);
out.println("The logon user:" + reqWrapper.getRemoteUser());
|
3.1.3版本client获取CAS传递过来的用户名的方法
客户端获取登录用户名和用户信息实例
HttpServletRequest request = ServletActionContext.getRequest();
AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
String username = principal.getName();
Long orgnId = Long.parseLong(principal.getAttributes().get("orgnId").toString());
|
分享到:
- 2009-12-03 18:25
- 浏览 4802
- 评论(0)
- 论坛回复 / 浏览 (0 / 3267)
- 查看更多
相关推荐
在“rabbitmq-java-client-bin-3.3.4”中,包含了JAR文件,如`amqp-client-3.3.4.jar`,这是实际使用的客户端库,开发者可以通过Maven或Gradle将其作为依赖引入项目。此外,可能还包含示例代码、API文档和其他辅助...
【开发环境】安装 Hadoop 运行环境 ( 下载 Hadoop | 解压 Hadoop | 设置 Hadoop 环境变量 | 配置 Hadoop 环境脚本 | 安装 winutils ) ... 一、下载 Hadoop 二、解压 Hadoop 三、设置 Hadoop 环境变量 ...
在"rabbitmq-java-client-bin-3.3.4.zip"这个压缩包中,包含的是RabbitMQ的Java客户端库,这是与RabbitMQ服务器通信的一个关键组件。RabbitMQ提供了多种语言的客户端,Java客户端则是针对Java开发者设计的,使得Java...
Qt.for.Windows.3.3.4.商业版.qt-win-commercial-3.3.4.exe
行业教育软件-学习软件-vipkid英语 3.3.4.zip
Ambari+Bigtop 一站式编译和部署解决方案 https://gitee.com/tt-bigdata/ambari-env
Ambari+Bigtop 一站式编译和部署解决方案 https://gitee.com/tt-bigdata/ambari-env
Ambari+Bigtop 一站式编译和部署解决方案 https://gitee.com/tt-bigdata/ambari-env
《VC6.0与Qt3.3.4:经典组合在现代编程中的应用与解析》 Visual C++ 6.0(简称VC6.0)是Microsoft公司开发的一款经典集成开发环境,它在20世纪末至21世纪初广泛应用于Windows平台上的C++应用程序开发。尽管已经过了...
CAS(Central Authentication Service)是一种广泛使用的开放源代码身份验证框架,它允许用户通过单一登录(Single Sign-On,SSO)访问多个应用系统。在本文中,我们将深入探讨如何使用和理解"cas客户端jar包"。 ...
Python matplotlib包 pip install matplotlib-3.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
官方版本,亲测可用
官方版本,亲测可用
Apache Commons Lang 是一个Java工具包,它为Java开发人员提供了许多实用程序类,这些类在Java标准库中并未提供。这个“commons-lang3-3.4-src”是Apache Commons Lang库的3.4版本的源代码,对于学习和理解这个库的...
现(20181020)Qt已升级到5.11,基本不会在有基于Qt3的新开发,但可能仍有老...包中有Qt3.3.4版windows商业版安装程序和许可证。安装时使用许可证会提示已经过期,不能获得Trolltech[狗头]的更新和支持,直接确定即可。
Apache Hadoop (hadoop-3.3.4.tar.gz)项目为可靠、可扩展的分布式计算开发开源软件。官网下载速度非常缓慢,因此将hadoop-3.3.4 版本放在这里,欢迎大家来下载使用! Hadoop 架构是一个开源的、基于 Java 的编程...
官方离线安装包,亲测可用
《美年大健康app v3.3.4:健康管理的新里程》 美年大健康app是一款专注于健康医疗领域的安卓应用程序,旨在为用户提供全方位的健康管理服务。版本号v3.3.4代表了软件在功能优化和用户体验上的进一步提升,使得这款...
《美年大健康app v3.3.4 安卓版》是一款专为安卓用户设计的健康管理软件,致力于提供全面的健康服务。该版本为3.3.4,集成了多项改进和优化,旨在提升用户体验并增强功能实用性。在这款应用中,用户可以享受到以下...
标题 "e1000e-3.3.4.tar.gz" 指的是一个Linux系统中的设备驱动程序包,具体来说是针对Intel E1000系列网络接口控制器的e1000e驱动程序的版本3.3.4。这个文件是一个经过gzip压缩的tar归档文件,常见于Linux环境中,...