- 本节目标:
- Cas 客户端 获取 Cas 服务器端 登录用户的信息
- 默认方式:在 Cas 客户端可以获取 服务器端的 登录 用户名
- 在UserController中 登录并 获取用户名方式
- String name = request.getRemoteUser();
- 部分代码如下:
- 在UserController中 登录并 获取用户名方式
![605c903d82164726ece851701c0d69af.png](https://img-blog.csdnimg.cn/img_convert/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](https://img-blog.csdnimg.cn/img_convert/1345865c0fbd3a0d2afe8075dc9d0545.png)
HTTPSandIMAPS-10000001.json 文件:
![f38172d4b5d7843de53323bcc6fad0b2.png](https://img-blog.csdnimg.cn/img_convert/f38172d4b5d7843de53323bcc6fad0b2.png)
- cas server 服务端 application.properties 增加的配置
#cas服务默认给cas客户端返回的字段信息(例如:返回 id、username 等)
cas.authn.jdbc.query[0].principalAttributeList=id,username,password
- 在cas 客户端的项目中获取返回信息的方式,也就是在相对应的springboot中的获取方式:(对应服务器端返回的字段)(注意:此代码没有进行类型判断,自己做时可以先判断类型再进行类型转换)
![2f37abfabec956612b208a7a2ba3e5d4.png](https://img-blog.csdnimg.cn/img_convert/2f37abfabec956612b208a7a2ba3e5d4.png)
- 启动cas服务器端、客户端1、客户端2 进行测试,如果在客户端1 与 客户端2 的控制台上能打印出相对应的信息,即可! 如果显示出来,则 恭喜您大功告成!