Я работаю с приложением Spring Boot + Spring Security OAuth2, которое, на мой взгляд, вдохновлено примерами из Dave Syer. Приложение настроено как сервер авторизации OAuth2, с одним открытым клиентом, использующим поток учетных данных пароля владельца ресурса. Успешный токен настроен как JWT.
Открытый Angular клиент отправляет POST-запрос в /oauth/token с базовым заголовком auth, содержащим идентификатор клиента и секретный код (это был самый простой способ проверить подлинность клиента, даже если секрет не является конфиденциальным), Тело запроса содержит имя пользователя, пароль и тип гранта "пароль".
Помимо сервера аутентификации, это сервер ресурсов RESTful для пользователей, команд и организаций.
Я пытаюсь добавить дополнительный поток аутентификации SSO, используя Spring Social. У меня есть Spring Social, настроенный для аутентификации через внешних поставщиков через /auth/ [provider]; однако в следующих запросах уже не установлен корректный набор SecurityContext. Возможно, Spring Security OAuth сервер или клиент переопределяют SecurityContext?
Если я могу правильно установить SecurityContext после Spring Social потока, у меня есть новый TokenGranter, который разрешает новый тип гранта "social", который будет проверять SecurityContextHolder для пользователя, прошедшего предварительную проверку.
Мне интересно как решение моей конкретной проблемы с SecurityContext (я считаю, что это проблема с Spring OAuth + Социальная интеграция), либо другой подход для аутентификации с внешними поставщиками и получения действительного JWT из нашего собственный сервер auth.
Спасибо!