Я внедряю аутентификацию JWT в Spring Security.У меня есть предопределенные роли, например.обычный пользователь, администратор и т. д.
У меня есть следующая полезная нагрузка токена:
{
"sub": "nick",
"iat": "<some_date>",
"exp": "<some_date+1h>",
"scopes": [
"ROLE_USER",
"ROLE_ADMIN"
]
}
Большинство реализаций, которые я видел до сих пор, извлекают данные пользователя из базы данных на основе идентификатора / имени пользователя / электронной почты, а затемиспользуйте эти данные для создания аутентификации (например, путем аутентификации UsernamePasswordAuthenticationToken).Для меня это на самом деле предпочтительный способ, потому что у меня всегда есть последние привилегии и ограничения (например, был ли пользователь забанен), а временные затраты не так велики по сравнению с преимуществами.
Мне просто любопытнокак я могу реализовать авторизацию в Spring Security только на основе ролей, включенных во входящий запрос (в его токене заголовка авторизации).Я хочу просто иметь возможность доступа к идентификатору пользователя в контроллере после того, как запрос направлен соответствующим образом.Достаточно ли будет проверки токена, основанной только на проверке срока действия и валидности ролей?