cas4.0 session中返回更多的用户信息

实现思路:
新增AccoutAttributeDao类继承StubPersonAttributeDao,重写getPerson方法。实际应用中我们只需要修改getPersion方法中的内容,根据实际情况,修改查询语句。需要哪些字段通过attributes.put存放进去。
注意:中文需要使用URLEncoder.encode进行编码,在使用的地方使用URLDecode.decode进行解码

//uid对应的是登录页面的username
public IPersonAttributes getPerson(String uid) {
  String sql = "";
  sql = "select * from sys_right_user where user_account =?";
  final Map values = jdbcTemplate.queryForMap(sql, uid);
  Map<String, List<Object>> attributes = new HashMap<String, List<Object>>();
  List<Object> o = Collections.singletonList((Object)URLEncoder.encode(String.valueOf(values.get("user_name"))));
  
  attributes.put("username",o);
  attributes.put("email",Collections.singletonList((Object) values.get("email")));
  attributes.put("mobile",Collections.singletonList((Object) values.get("mobile")));
  attributes.put("userid",Collections.singletonList((Object) values.get("user_id")));
  return new AttributeNamedPersonImpl(attributes);
}

修改deployerConfigContext.xml 中 attributeRepository的class :
并配置好jdbcTemplate
    <bean id="attributeRepository" class="org.jasig.services.persondir.support.AccoutAttributeDao" >
     <property name="jdbcTemplate" ref="jdbcTemplate"></property>
    </bean>
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">  
       <property name="dataSource">  
            <ref bean="queryDatabaseDataSource" />  
        </property>  
    </bean>

修改\view\jsp\protocol\2.0\casServiceValidationSuccess.jsp,参考附件中的页面。
获取变量的方法:
Object object =session.getAttribute("_const_cas_assertion_");
Assertion assertion =(Assertion)object;
Map<String, Object> map  = assertion.getPrincipal().getAttributes()
通过map.get("email")来获取。

时间: 2024-10-15 04:02:45

cas4.0 session中返回更多的用户信息的相关文章

Mvc4单点登录之四 配置Cas服务端,返回更多的用户信息!

        .Net单点登录详解 (SSO)        Mvc4单点登录之一Cas简单介绍        Mvc4单点登录之二 Cas server端配置            Mvc4单点登录之三Cas 客户端配置            前几篇博客大致的介绍了,cas的使用,在这篇博客当中,将为大家介绍一下如何配置服务端,让用户登录之后,返回更多的用户信息! 一.首先需要配置属性attributeRepository 首先,你需要到WEB-INF目录找到 deployerConfigC

【SSO单点系列】(7):CAS4.0 SERVER通过数据库方式认证用户

在前几篇中有简单介绍服务端的认证方式,默认的是直接在 deployerConfigContext.xml 文件中 一个叫做 primaryAuthenticationHandler 的bean中配置.不过这只支持一个账号,而且是固定的,这有非常大的局限性,在现实系统中是肯定不能用这样的方式的. 现在的应用系统一般都是通过读取数据库的方式验证用户名.密码是否正确,进而进行认证的.因此在这一篇文章中将会介绍,怎么把服务端的默认认证方式改造成数据库验证的方式,以此满足系统的基本需求. 1.增加数据源配

【SSO单点系列】(3):CAS4.0 之自定义返回登出页面

一.登出实现返回自定义页面 服务端修改 cas-servlet.xml <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction" p:servicesManager-ref="servicesManager" p:followServiceRedirects="${cas.logout.followServiceRedirects:true}"

【试水CAS-4.0.3】第05节_CAS服务端自定义返回的用户信息

/** * @see ------------------------------------------------------------------------------------------------------------------------ * @see CAS服务端自定义返回的用户信息 * @see 返回的用户信息是在deployerConfigContext.xml中的<bean id="attributeRepository">配置的 * @se

基于Spring oauth2.0统一认证登录,返回自定义用户信息

先看源码是如何处理的:   package org.springframework.boot.autoconfigure.security.oauth2.resource; import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.logging.Log

【cas】利用Map返回更多信息

在cas中默认获取的用户信息为登录时填写的登录用户名,但是如果我不想返回登录的用户名,返回其他的信息呢? 一.将登录用户的id作为默认值 显示 首先在cas server中找到deployerConfigContext.xml配置文件中关于认证信息配置的地方即name="credentialsToPrincipalResolvers",这里是 关于返回用户信息所对应的类.默认执行的是下面这个类. <bean class="org.jasig.cas.authentica

C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据

我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的openID,进而就能获取到更多的用户信息,这个在会员信息的场景里面用的很多,本篇介绍在网站中迅速配置这样的菜单链接,并介绍如何在后台获取相关的用户信息,实现页面数据个性化的展现操作. 我们知道,微信的自定义菜单分为两大类,分别对应Click类型和View类型的,而重定向属于View类型的一种,如下所示. 1.微信重

小白学react之网页获取微信用户信息

通过上一篇<小白学react之EJS模版实战>我们学习了如何通过EJS模版生成我们高定制化的index.html文件. 本篇我们将会继续延续我们的alt-tutorial项目的实战计划,去获取微信扫码用户的信息,并将头像显示在我们页面的右上角上. 最终实战效果将如下所示. 首先根据我们的网站url生成二维码,比如我们可以通过浏览器的FeHelper来生成: 然后用户通过微信扫码: 最后用户确定授权后获取到用户的基本信息,并将头像显示在右上角: 1. 内网穿透准备 我们获取微信用户信息的过程中,

微信公众号基础02_获取accessToken和用户信息

上一篇分享了搭建微信公众号服务器,本文分享一下如果获取access_Token和用户信息,工具还是新浪云SAE 1.获取access_Token 相见开发文档:https://mp.weixin.qq.com/wiki/14/9f9c82c1af308e3b14ba9b973f99a8ba.html accesstoken是公众号的全局唯一票据,公众号调用各接口时都需使用accesstoken.开发者需要进行妥善保存.accesstoken的存储至少要保留512个字符空间.accesstoken