Я прочитал эту статью CAS SSO с Spring Security и успешно запустил исходный код, но этот клиент получил только имя пользователя, надеюсь, моему клиенту нужно больше полей с сервера CAS.
В моем предыдущем клиенте CAS, использующем традиционный SpringMVC, я мог получить все файлы, включая имя пользователя, номер телефона, пароль и электронную почту. Основные этапы следующие:
В файле сервера 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"));
...
}
Теперь я хочу реализовать клиент CAS на основе spring boot + spring security
, как описано выше в статье. Но на основании кода статей, что мне делать? Заранее спасибо!