CAS client 端使用Filter 获得server端传回的信息,如果多个信息使用:
assertion.getPrincipal().getAttributes()
来获得一个Map,但是有的时候Map中没有数据为null;
解决方案:配置deployerConfigContext.xml中名称为serviceRegistryDao的bean,如下
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegisteredServiceImpl"
p:id="1"
p:description="test"
p:serviceId="http://192.168.104.101:8080/*"
p:enabled="true"
p:ssoEnabled="true"
p:anonymousAccess="false">
<property name="allowedAttributes" value="key1,key2,key3"/>
</bean> </list>
</property>
,其中最重要的配置为:<property name="allowedAttributes" value="key1,key2,key3"/>
这个属性决定了我们在client端获得map是否为null,如果不配置该属性则为null,该属性配置我们返回多个信息对应的key;
此处对应CAS SERVER端源码如下 CentralAuthenticationServiceImpl.java:
// 获得deployerConfigContext.xml中serviceRegistryDao配置的registeredServices
final RegisteredService registeredService = this.servicesManager
.findServiceBy(service);
allowwedAttributes配置对应的代码如下:
/**
* 从principal.getAttributes()获得map后,获取registeredService的allowedAttributes属性,
* 可以对应的key存入返回客户端信息的中map中
*/
for (final String attribute : registeredService
.getAllowedAttributes()) {
final Object value = principal.getAttributes().get(
attribute);
if (value != null) {
attributes.put(attribute, value);
}
}
final Principal modifiedPrincipal = new SimplePrincipal(
principalId, attributes);
final MutableAuthentication mutableAuthentication = new MutableAuthentication(
modifiedPrincipal);
;
希望对大家有所帮助
分享到:
相关推荐
CAS客户端获取用户保存至sessionUser
cas源码,可直接使用 单点登录(Single Sign On),简称为 SSO,是目前...CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。
cas client增加stucts框架 服务端返回用户其它信息
主要讲述了CAS单点登录多数据及获取更多用户信息配置。
cas4.2.7服务端+cas客户端+示例程序+环境搭建之客户端war包 一切跑不起来的程序和走不通的...该客户端的这个URL还演示了如何调用cas服务端获取当前登录用户的相关信息(由服务端负责从数据库中读取后返回给cas客户端)。
NULL 博文链接:https://starbhhc.iteye.com/blog/2302902
----------------------------使用--------------------------------- ...14.CAS-实现自定义返回用户登录信息 15.CAS-页面缓存记住我 ------------------------------建表脚本在文件里登录用户/密码:ll/123456
cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x集成cas4.1.x...
CAS协议,包括cas1.0和cas2.0的协议,cas 协议分为两部分,一部分是票据-ticket,一部分是url。
cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信 cas4.2.7 实现其他系统和cas互相认证互信
基于springboot,cas,shiro,pac4j,实现cas rest接口获取ticket,不再跳转cas server登录页
包含cas源码、cas使用说明文档(包含配置信息)、连接数据库所需jar包、cas服务端自定义返回值等
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要...
利用CAS整合多个系统的问题与方案 利用CAS提供统一的登录入口,还需要定制登录界面,让用户可以选择使用那个系统的帐户进行登录。 由于登录界面发生改变,请求参数增加了账号所在的系统名称,所以,登录凭据也不能...
CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案CAS5.3.2Docker 部署方案
CAS源码分析图,
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目。CAS 具有以下特点: 开源的企业级单点登录解决方案。 CAS Server 为需要...
CAS 是 Yale 大学发起的一个开源项目,旨在为 Web 应用系统提供一种可靠的单点登录方法,CAS 在 2004 年 12 月正式成为 JA-SIG 的一个项目.CAS 具有以下特点: 【1】开源的企业级单点登录解决方案。 【2】CAS ...
这是CAS4.2.7的源码编译,并打包好的说明书噢。 目前(2022.3.27)CAS已经升到6版本,4版本以前的说明书,都已经下线,...补充说明:如果下载下来,打开为空白,一般为windows自身将其阻止了,请“解除锁定”即可打开。
n 到 apache 网站下载下面三个 cas server 依赖 jar 包拷贝到 D:\server\apache-tomcat-6.0.18\webapps\cas\WEB-INF\lib 目录下 Ø ...