Добавить дополнительную информацию в ответ на аутентификацию - PullRequest
0 голосов
/ 21 мая 2018

Работа над приложением REST API с использованием Grails 3.3.5 и Spring-security-rest 2.0.0-RC1.

Когда я вхожу в систему с помощью / api / login, я правильно получаю это как результат:

{
    "username": "name.surname@acme.com",
    "roles": [
        "ROLE_USER"
    ],
    "access_token": "qgsbpk05jfrbf33xx08m8r4govkg53d1"
}

Я бы хотел добавить в ответ другую информацию, такую ​​как имя и фамилия пользователя.Спасибо

ОБНОВЛЕНИЕ Спасибо Евгению, который указывает мне правильное направление и, читая руководство, я также реализую UserDetailsService.Из руководства:

Если вы хотите отобразить дополнительную информацию в своем ответе JSON, вам необходимо:

Configure an alternative userDetailsService bean that retrieves the additional information you want, and put it in a principal object.

Configure an alternative accessTokenJsonRenderer that reads that information from the restAuthenticationToken.principal object.

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете переопределить accessTokenJsonRenderer bean

  1. Создать класс:
class MyRestAuthTokenJsonRenderer implements AccessTokenJsonRenderer {
    @Override
    String generateJson(AccessToken accessToken){
        // create response, see DefaultAccessTokenJsonRenderer.groovy from https://github.com/alvarosanchez/grails-spring-security-rest
        return your_formatted_json_response
    }
}
переопределение bean-компонента в resources.groovy
beans = {
   accessTokenJsonRenderer(MyRestAuthTokenJsonRenderer)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...