Как отправить дополнительные параметры в GRAILS JWT

В Grails, как указано в этом документе (http://alvarosanchez.github.io/grails-spring-security-rest/latest/docs/#_token_generation_), в разделе 9.12 JWT выглядит так:

          Listing 10. JWT claims
           {
             "exp": 1422990129,
             "sub": "jimi",
              "roles": [
              "ROLE_ADMIN",
               "ROLE_USER"
           ],
           "iat": 1422986529
           } 

Как добавить/получить дополнительные параметры в этот JWT, например,

      "device_id": 8797079079909  

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

Спасибо, Великобритания.


person uk1974    schedule 20.06.2016    source источник
comment
Ответ здесь работает: https://stackoverflow.com/questions/49715689/grails-rest-security-add-user-id-to-token Я протестировал это в Grails 3.3.8, добавив собственное настраиваемое поле   -  person August    schedule 23.09.2018


Ответы (1)


в той же документации: http://alvarosanchez.github.io/grails-spring-security-rest/next/docs/index.html

В пункте:

11.1. Отключение поддержки токенов-носителей для полной настройки ответа

Там показано, как это сделать:

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

Настройте альтернативный bean-компонент userDetailsService, который извлекает необходимую дополнительную информацию, и поместите ее в основной объект.

Настройте альтернативный accessTokenJsonRenderer, который считывает эту информацию из объекта restAuthenticationToken.principal.

По-моему, он расположен не в том месте.

Надеюсь, это то, что вы ищете, удачи

person Carlos Alberto Schneider    schedule 20.12.2016