计算机系统应用教程网站

网站首页 > 技术文章 正文

SpringBoot+Cas(四) 获取Cas服务器登录信息

btikc 2024-10-01 08:29:52 技术文章 11 ℃ 0 评论
  • 本节目标:
    • Cas 客户端 获取 Cas 服务器端 登录用户的信息
  • 默认方式:在 Cas 客户端可以获取 服务器端的 登录 用户名
    • 在UserController中 登录并 获取用户名方式
      • String name = request.getRemoteUser();
      • 部分代码如下:
    • 可以在 客户端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 文件:

HTTPSandIMAPS-10000001.json 文件:

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

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

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

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

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表