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对象
参考信息