Как клиент CAS (Spring Boot + Spring Security) может получить больше полей от CAS Server? - PullRequest
0 голосов
/ 09 мая 2019

Я прочитал эту статью 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, как описано выше в статье. Но на основании кода статей, что мне делать? Заранее спасибо!

1 Ответ

1 голос
/ 26 июня 2019

этот клиент получает только имя пользователя, я надеюсь, что моему клиенту нужно больше полей с сервера CAS

Вы должны убедиться, что ваш клиент выбрал правильную конечную точку для проверки.На основе примечаний здесь :

Если ваше клиентское приложение не получает атрибуты, вам необходимо убедиться:

  • Клиент используетверсия протокола CAS, которая может освобождать атрибуты.
  • Клиент, основанный на # 1, достигает соответствующей конечной точки для проверки билета службы (т. е. /p3/serviceValidate).
  • CASСам сервер правильно разрешает и получает атрибуты.
  • Сервер CAS имеет право выпускать атрибуты для этого конкретного клиентского приложения в своем реестре служб.
...