判断是什么类型的用户再登录_SpringBoot+Cas(四) 获取Cas服务器登录信息

  • 本节目标:
    • Cas 客户端 获取 Cas 服务器端 登录用户的信息
  • 默认方式:在 Cas 客户端可以获取 服务器端的 登录 用户名
    • 在UserController中 登录并 获取用户名方式
      • String name = request.getRemoteUser();
      • 部分代码如下:
605c903d82164726ece851701c0d69af.png
    • 可以在 客户端1 登录能获取到用户名,然后在客户端2,也可以直接获取到登录用户的用名,客户端2不需要再次登录
  • 问题来了:如果想从服务端获取登录的所有信息如何获取?
    • 例如:获取 id、name、password、role 等等,而不是只获取用户名称呢?
  • 解决方式:获取Cas服务器端,返回 的所有用户信息
    • 添加返回策略,主要在:cas server端的项目中的:cas/WEB-INF/classes/services下的:两个文件都需要添加返回策略:Apereo-10000002.json、HTTPSandIMAPS-10000001.json 添加的内容为:

"attributeReleasePolicy" : {

"@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"

}

代码如下:

Apereo-10000002.json 文件:

1345865c0fbd3a0d2afe8075dc9d0545.png

HTTPSandIMAPS-10000001.json 文件:

f38172d4b5d7843de53323bcc6fad0b2.png
  • cas server 服务端 application.properties 增加的配置

#cas服务默认给cas客户端返回的字段信息(例如:返回 id、username 等)

cas.authn.jdbc.query[0].principalAttributeList=id,username,password

  • 在cas 客户端的项目中获取返回信息的方式,也就是在相对应的springboot中的获取方式:(对应服务器端返回的字段)(注意:此代码没有进行类型判断,自己做时可以先判断类型再进行类型转换)
2f37abfabec956612b208a7a2ba3e5d4.png
  • 启动cas服务器端、客户端1、客户端2 进行测试,如果在客户端1 与 客户端2 的控制台上能打印出相对应的信息,即可! 如果显示出来,则 恭喜您大功告成!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值