cas返回mysql数据_CAS返回用户的基本资料[基于数据库]

9月 25, 2016 |

Nix.Huang

相关的视频教程观看地址:单点登录系列视频教程

CAS3.0协议,添加了一个可选的cas:attributes 属性,用来返回用户的基本资料

设置步骤如下:

1、修改deployerConfigContext.xml

注释掉原来的attributeRepository bean, 声明SingleRowJdbcPersonAttributeDao的实例,官方默认的基于数据库的属性获取有两个实现类MultiRowJdbcPersonAttributeDao和SingleRowJdbcPersonAttributeDao,在此我们使用基于单行版本。

2、修改服务管理文件

本示例基于json管理服务注册

所以要在serviceName-serviceid.json文件中声明正确的attributeReleasePolicy 策略,

"attributeReleasePolicy" : {

"@class" : "org.jasig.cas.services.ReturnAllAttributeReleasePolicy"

},

ReturnAllAttributeReleasePolicy表示返回所有的属性。官方文档还有别的属性释放策略,参考附录的连接

3、客户端需要支持CAS协议3.0版本

在web.xml中声明org.jasig.cas.client.validation.Cas30ProxyReceivingTicketValidationFilter 而不是org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter。

在需要用户基本资料的地方,使用如下的代码片段获取基本资料

AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();

String email = (String)principal.getAttributes().get("email");

request是HttpServletRequest对象

参考信息


版权声明:本文为weixin_33961553原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。