永发信息网

CAS自定义验证参数时返回数据问题

答案:1  悬赏:70  手机版
解决时间 2021-03-03 00:05
  • 提问者网友:风月客
  • 2021-03-02 01:03
<bean id="attributeRepository"
class="com.my.services.persondir.support.jdbc.SingleRowJdbcPersonAttributeDao">
<constructor-arg index="0" ref="casDataSource"/>
<constructor-arg index="1" value="select * from user where {0}"/>
<property name="queryAttributeMapping">
<map>
<!--这里的key需写username,value对应数据库用户名字段-->
<entry key="username" value="username"/>
<entry key="project" value="project"/> ---------********这个在程序里怎么取值***********
</map>
</property>
<property name="resultAttributeMapping">
<map>
<!--key为对应的数据库字段名称,value为提供给客户端获取的属性名字,系统会自动填充值-->
<entry key="userid" value="userid"/>
<entry key="project" value="project"/>
</map>
</property>
</bean>
需要解决的部分就是AbstractDefaultAttributePersonAttributeDao这个类中,Collections.singletonList((Object)uid)能得到用户名也就是username,那个project怎么得到呢,哪位弄过请指教,感谢感谢!!!
最佳答案
  • 五星知识达人网友:鱼芗
  • 2021-03-02 01:14
那个不是在那里面取的,另外加的需要自己手动去取,这个值在登陆时会自动写到request中的,可以用request取,或者用Assertion取
Assertion assersion = AssertionHolder.getAssertion();
AttributePrincipal principal = assersion.getPrincipal();
//request取
//AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();
Map attributes = principal.getAttributes();
String project=attributes.get("project");
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯