给cas增加用户参数信息

你默认安装了cas以后,只能看到username一个信息,如果你想增加部门,姓名等信息的时候就无能为力了。其实cas是解决了这个问题的,但是需要你增加些配置和修改一些代码。方法如下。

1、修改deployerConfigContext.xml文件中的attributeRepository的实现

<bean id=”attributeRepository” class=”org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao”>
                <constructor-arg index=”0″ ref=”ssoDataSource” />
                <constructor-arg index=”1″ >
                        <list>
                                <value>username</value>
                        </list>
                </constructor-arg>
                <constructor-arg index=”2″ value=”select * from user_attr where username = ? ” />
                <property name=”columnsToAttributes”>
                        <map>
                                <entry key=”realname” value=”realname” />
                                <entry key=”usergroup” value=”usergroup” />
                        </map>
                </property>
        </bean>

 我这里边使用的是jasig的persondir,他的svn在

https://www.ja-sig.org/svn/person-directory

这个地址。可以使用siglerow,也可以使用多行的实现。

我这里边使用的是siglerow的。

<constructor-arg index=”1″ >
                        <list>
                                <value>username</value>
                        </list>
                </constructor-arg>

这个参数是sql中使用的参数。

<property name=”columnsToAttributes”>
                        <map>
                                <entry key=”realname” value=”realname” />
                                <entry key=”usergroup” value=”usergroup” />
                        </map>
                </property>

这个是准备提供给应用的参数。

2、建立数据表

CREATE TABLE IF NOT EXISTS `user_attr` (
  `id` int(11) NOT NULL auto_increment,
  `username` varchar(50) NOT NULL,
  `realname` varchar(50) default NULL,
  `usergroup` varchar(50) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

3、修改输出的jsp文档

cas-server-webapp/src/main/webapp/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:attribute>
                                        <cas:name>${fn:escapeXml(attr.key)}</cas:name>
                                        <cas:value>${fn:escapeXml(attr.value)}</cas:value>
                                </cas:attribute>
</c:forEach>
</cas:attributes>
</c:if>

 

ok

搞定。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值