Spring security CAS客户端(spring引导和spring安全性)如何从CAS服务器获取更多字段?

Spring security CAS客户端(spring引导和spring安全性)如何从CAS服务器获取更多字段?,spring-security,cas,spring-security-cas,Spring Security,Cas,Spring Security Cas,我阅读了这篇文章并成功运行了源代码,但是这个客户机只获得用户名,我希望我的客户机需要更多来自CAS服务器的字段 在我以前使用传统SpringMVC的CAS客户端中,我可以获取所有文件,包括用户名、电话号码、密码和电子邮件。主要步骤如下: 在CAS服务器的文件WEB-INF/classes/services/Apereo-10000002.json中,我添加了一个选项: "attributeReleasePolicy" : { "@class" : "org.apereo.cas.serv

我阅读了这篇文章并成功运行了源代码,但是这个客户机只获得用户名,我希望我的客户机需要更多来自CAS服务器的字段

在我以前使用传统SpringMVC的CAS客户端中,我可以获取所有文件,包括用户名、电话号码、密码和电子邮件。主要步骤如下: 在CAS服务器的文件WEB-INF/classes/services/Apereo-10000002.json中,我添加了一个选项:

  "attributeReleasePolicy" : {
  "@class" : "org.apereo.cas.services.ReturnAllAttributeReleasePolicy"
 }
在客户机中,我使用了
getUserPrincipal
,如下所示

@RequestMapping("/cas/login.do")
@ResponseBody
public String casLogin(String uri, 
 HttpServletRequest request,...){
    ... 

    Principal principal = request.getUserPrincipal();
    Map<String,Object> userInfo = new HashMap<>();
    if (p instanceof AttributePrincipal) {
        userInfo =( (AttributePrincipal)principal).getAttributes();
    }
    System.err.println("image:"+userInfo.get("image"));
    System.err.println("username:"+userInfo.get("username"));
    System.err.println("email:"+userInfo.get("email"));
    System.err.println("phoneNo:"+userInfo.get("phoneNo"));
 ...
}
@RequestMapping(“/cas/login.do”)
@应答器
公共字符串casLogin(字符串uri,
HttpServletRequest请求,…){
... 
Principal=request.getUserPrincipal();
Map userInfo=newhashmap();
if(p AttributePrincipal的实例){
userInfo=((AttributePrincipal)主体).getAttributes();
}
System.err.println(“image:+userInfo.get(“image”);
System.err.println(“用户名:”+userInfo.get(“用户名”);
System.err.println(“email:+userInfo.get(“email”);
System.err.println(“phoneNo:+userInfo.get(“phoneNo”);
...
}
现在,我想实现一个基于
springboot+springsecurity
的CAS客户机,如上文所述。但是基于文章代码,我应该怎么做?提前谢谢

这个客户端只获取用户名,我希望我的客户端需要更多来自CAS服务器的字段

您需要确保您的客户机到达正确的端点进行验证。根据:

如果客户端应用程序未接收属性,则需要确保:

  • 客户端正在使用能够释放属性的CAS协议版本
  • 基于#1的客户端正在命中相应的端点进行服务票证验证(即
    /p3/serviceValidate
  • CAS服务器本身正在正确解析和检索属性
  • CAS服务器被授权在其服务注册中心内释放特定客户端应用程序的属性