Spring Security + JWT: Как обогатить аутентификацию / принципал после успешного входа в систему? - PullRequest
0 голосов
/ 24 сентября 2018

У меня есть вопрос, который кажется популярным, но я не смог найти ответ.Ну, есть много информации об этом, но я не уверен, что лучший способ.Итак, вот сценарий.

У нас есть одностраничное приложение (SPA) и веб-служба RESTful (API).Мы используем внешнего поставщика услуг аутентификации / авторизации через OAuth2 / JWT.Но мне нужно сохранить идентификатор пользователя (предоставленный внешним поставщиком аутентификации) в базе данных на стороне сервера после успешного входа в систему.А также мне нужно обогатить объект Authentication / Principal в контексте безопасности после успешного входа (например, путем добавления электронной почты).

В Интернете много всего об этом сценарии.Но у нас уже есть SDK для аутентификации / авторизации, и он отлично работает (без специального кода и т. Д.).Мне просто нужно что-то добавить к объекту аутентификации.Как правильно это сделать?Спасибо.

1 Ответ

0 голосов
/ 03 октября 2018

Для справки, вот что мы сделали:
Как я уже сказал, SDK уже выполняет всю тяжелую работу по механике аутентификации.Нам просто нужно обогатить объект аутентификации после успешной аутентификации.Таким образом, мы включили AuthenticaitonProvider (реализовано в SDK) в нашу реализацию (вдохновлено PreAuthenticatedAuthenticationProvider) и после успешной аутентификации мы обогатили результат, используя нашу реализацию UserDetails (вдохновленную PreAuthenticatedGrantedAuthoritiesUserDetailsService).Остальное было прямо вперед.Спасибо.

PS: пожалуйста, дайте мне знать, если вам не нравится идея.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...