首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

jasig cas提供的扩展信息,怎么在spring security支持的客户端读取

2012-12-23 
jasig cas提供的扩展信息,如何在spring security支持的客户端读取?cas 服务端:配置beanclassorg.jasig.

jasig cas提供的扩展信息,如何在spring security支持的客户端读取?
cas 服务端:配置
<bean
class="org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver" >
<property name="attributeRepository" ref="attributeRepository"/>
</bean>
。。。。。。。
 <bean id="attributeRepository" class="org.jasig.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
        <constructor-arg index="0" ref="casDataSource" />
        <constructor-arg index="1" value="SELECT * FROM rbac_users WHERE {0}" />
        <property name="queryAttributeMapping">
            <map>
                <entry key="username" value="username" />
            </map>
        </property>
        <property name="resultAttributeMapping">
           <map>
            <entry key="username" value="username" />
           
            <entry key="namepinyin" value="namepinyin" />
            
        </map>
        </property>
    </bean>

。。。
<bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl">
<!--<property name="registeredServices">
<list>
<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="0" />
<property name="name" value="HTTP" />
<property name="description" value="Only Allows HTTP Urls" />
<property name="serviceId" value="http://**" />
<property name="ignoreAttributes" value="true" />
</bean>

<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="1" />
<property name="name" value="HTTPS" />
<property name="description" value="Only Allows HTTPS Urls" />
<property name="serviceId" value="https://**" />
<property name="ignoreAttributes" value="true" />
     
</bean>

<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="2" />
<property name="name" value="IMAPS" />
<property name="description" value="Only Allows HTTPS Urls" />
<property name="serviceId" value="imaps://**" />
</bean>

<bean class="org.jasig.cas.services.RegisteredServiceImpl">
<property name="id" value="3" />
<property name="name" value="IMAP" />
<property name="description" value="Only Allows IMAP Urls" />


<property name="serviceId" value="imap://**" />
</bean>
</list>
</property>-->

</bean>

如何在spring security支持的客户端读取扩展信息,如namepinyin?
[解决办法]
org.springframework.security.cas.userdetails.AbstractCasAssertionUserDetailsService.loadUserDetails(Assertion) 
Override这个方法的时候就能拿到了

e.g.
assertion.getPrincipal().getAttributes().get("attribute_key");
[解决办法]
谢谢,经过调试官方源码,解决了,办法看我的博客http://hi.baidu.com/new/linziweb

热点排行