casServer单点登录返回更多用户信息正确配置
来源:互联网 发布:欧洲审美知乎 编辑:程序博客网 时间:2024/05/17 06:02
网上很多关于配置casServer的文章,很详细,但是想配置出自己合适的版本会出现好多问题。
第一 版本:
我用的是cas-server-core-3.3.3.jar cas-client-core-3.2.1.jar这个版本
deployerConfigContext.xml应该这样设置返回,构造函数的参数应该为3个,网上有的是2个,配置会报错,应该是版本问题 username是默认输入框的值
<bean class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao" id="attributeRepository1">
<constructor-arg index="0" ref="casDataSource"/><constructor-arg index="1"> <list> <value>username</value> </list> </constructor-arg> <constructor-arg index="2" value="select * from users where username=?"/> <property name="columnsToAttributes"> <map> <entry key="username" value="username"/> <entry key="password" value="password"/> </map> </property> </bean>然后再添加<property name="credentialsToPrincipalResolvers"><list><beanclass="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" ><property name="attributeRepository" ref="attributeRepository1"/></bean><beanclass="org.jasig.cas.authentication.principal.HttpBasedServiceCredentialsToPrincipalResolver" /></list></property>最后修改WEB-INF\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp<c:if test="${fn:length(assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes) > 0}"> <cas:attributes> <c:forEach var="attr" items="${assertion.chainedAuthentications[fn:length(assertion.chainedAuthentications)-1].principal.attributes}"> <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}> </c:forEach> </cas:attributes> </c:if>
最后在客户端获取时,AttributePrincipal principal = (AttributePrincipal) request.getUserPrincipal();principal.getAttributes().get("email");
一般都是用这个方式去获取值,但我这边就是取不到,打开源码,看到有两个filterCas20ProxyReceivingTicketValidationFilter
Cas10TicketValidationFilter
我配置的是cas10,改回cas20就可以正确取得参数。应该是cas10没有获取其他参数的原因,只是简单的验证了ticket的原因
String allowAnyProxy = getPropertyFromInitParams(filterConfig, "acceptAnyProxy", null); String allowedProxyChains = getPropertyFromInitParams(filterConfig, "allowedProxyChains", null); String casServerUrlPrefix = getPropertyFromInitParams(filterConfig, "casServerUrlPrefix", null); Cas20ServiceTicketValidator validator; if ((CommonUtils.isNotBlank(allowAnyProxy)) || (CommonUtils.isNotBlank(allowedProxyChains))) { Cas20ProxyTicketValidator v = new Cas20ProxyTicketValidator(casServerUrlPrefix); v.setAcceptAnyProxy(parseBoolean(allowAnyProxy)); v.setAllowedProxyChains(CommonUtils.createProxyList(allowedProxyChains)); validator = v; } else { validator = new Cas20ServiceTicketValidator(casServerUrlPrefix); } validator.setProxyCallbackUrl(getPropertyFromInitParams(filterConfig, "proxyCallbackUrl", null)); validator.setProxyGrantingTicketStorage(this.proxyGrantingTicketStorage); validator.setProxyRetriever(new Cas20ProxyRetriever(casServerUrlPrefix, getPropertyFromInitParams(filterConfig, "encoding", null))); validator.setRenew(parseBoolean(getPropertyFromInitParams(filterConfig, "renew", "false"))); validator.setEncoding(getPropertyFromInitParams(filterConfig, "encoding", null)); Map additionalParameters = new HashMap(); List params = Arrays.asList(RESERVED_INIT_PARAMS); for (Enumeration e = filterConfig.getInitParameterNames(); e.hasMoreElements(); ) { String s = (String)e.nextElement(); if (!params.contains(s)) { additionalParameters.put(s, filterConfig.getInitParameter(s)); } } validator.setCustomParameters(additionalParameters); validator.setHostnameVerifier(getHostnameVerifier(filterConfig));
caserver配置使用了很多“默认”变量,像一些bean的配置,如果不看源码,还真的有点麻烦。
- casServer单点登录返回更多用户信息正确配置
- Mvc4单点登录之四 配置Cas服务端,返回更多的用户信息!
- CAS SSO 4.0 单点登录返回更多用户信息
- 基于CAS实现单点登录(SSO):登录成功后,cas client如何返回更多用户信息
- CAS 实现单点登录(SSO)返回更多用户信息(五)
- CAS—登录后返回更多用户信息
- CAS—登录后返回更多用户信息
- 单点登录CAS6-服务端自定义返回的用户信息
- 单点登录系统CAS搭建及取得更多用户信息的实现
- 单点登录系统CAS搭建及取得更多用户信息的实现
- 单点登录(十七)----cas4.2.x登录mongodb验证方式成功后返回更多信息更多属性到客户端
- CAS SERVER返回更多用户信息给客户端
- CAS SSO 4.0.x 返回更多用户信息
- sso返回更多用户信息,中文乱码
- cas 4.2.5 返回更多的用户信息
- PLSQL配置登录用户信息
- PLSQL配置登录用户信息
- 单点登录CAS7-客户端配置单点登录
- ubuntu安装git server经验总结
- UISlider
- OpenSSL: 消息摘要算法
- 《设计心理学》
- 虛擬鍵盤按下後藍色圖示無法消失
- casServer单点登录返回更多用户信息正确配置
- 内存对齐
- c语言的避雷针之指针习题精选
- C++内存泄露 与 野指针总结
- html5游戏开发--"动静"结合用地图块拼成大地图 & 初探lufyl
- ios debug release nslog
- Oracle 11g R2 for Windows安装配置
- PowerDesigner 反向工程
- oracle10Client安装过程奇艺问题解决