博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CAS获取用户更多信息
阅读量:5901 次
发布时间:2019-06-19

本文共 2775 字,大约阅读时间需要 9 分钟。

hot3.png

配置SingleRowJdbcPersonAttributeDao

基于deployerConfigContext.xml配置文件,添加SingleRowJdbcPersonAttributeDao节点,其使用jdbc连接mysql认证,并且返回更多的用户信息放到session里让客户端获取

配置用户认证凭据转化的解析器

在deployerConfigContext.xml中,为UsernamePasswordCredentialsToPrincipalResolver注入attributeRepository

删除serviceRegistryDao节点下的配置

如果不注释掉里面的内容,将会导致客户端无法获取用户更多的信息

添加用户信息返回

找到WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp。此文件作用是在server验证成功后,这个页面负责生成与客户端交互的xml信息,在默认casServiceValidationSuccess.jsp中,只包括用户登录名,并不提供其他的属性信息,因此需要对页面进行扩展

<%@ page session="false" %><%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
${fn:escapeXml(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.id)}
${pgtIou}
${fn:escapeXml(proxy.principal.id)}
${fn:escapeXml(attr.value)}

客户端获取

示例基于jsp页面获取

<%@ page import=" org.jasig.cas.client.util.*" %><%@ page import=" org.jasig.cas.client.authentication.*" %><%@ page import=" org.jasig.cas.client.validation.*" %><%@ page import=" java.util.*" %>        <%                  AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();                  // AttributePrincipal principal = AssertionHolder.getAssertion().getPrincipal();                String loginName = principal.getName();                  out.println("loginName:" + loginName);                  Map
attributes = principal.getAttributes(); out.println("
"); if (attributes != null) { out.println("username:" + attributes.get("username")); out.println("
"); out.println("password:" + attributes.get("password")); out.println("
"); out.println("email:" + attributes.get("email")); out.println("
"); out.println("name:" + attributes.get("name")); out.println("
"); } %>

转载于:https://my.oschina.net/xiaokaceng/blog/182547

你可能感兴趣的文章
Mac中文乱码问题
查看>>
django之cookie
查看>>
SDUT-3332&3333_数据结构实验之栈与队列五:下一较大值
查看>>
汕头市队赛SRM15
查看>>
mysql-mode
查看>>
权值线段树
查看>>
Python 开发 项目《外星人入侵》
查看>>
IIS7.5上的REST服务的Put操作发生HTTP Error 405.0 - Method Not Allowed 解决方法
查看>>
MySQL操作数据库指令
查看>>
Web前端开发工程师常用技术网站整理
查看>>
SpringEl表达式(转)
查看>>
java dom4j xml生成,解析
查看>>
android 带checkbox的List
查看>>
USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题
查看>>
卸载360企业版密码
查看>>
linux shell dirname basename
查看>>
Webform服务器控件调用JS
查看>>
运维笔记--linux下忘记mysql root密码
查看>>
medusa爆破路由
查看>>
一招拒绝所有病毒木马
查看>>