Тип предоставления пароля клиента Spring Security 5 OAuth2 - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть 2 приложения:

  1. Spring Application 1 - это клиент и сервер ресурсов.
  2. Spring Application 2 - это сервер авторизации.

Пользователь сможет войти в Приложение 1 и получить доступ к его ресурсам. И я хочу реализовать следующий поток:

Пользователь вводит свои учетные данные в форме входа -> Приложение 1 получает токен из Приложения 2, используя учетные данные пользователя, и его clientId с типом предоставления пароля -> Доступ к ресурсам Приложения 1 с токеном.

Вопрос в том, поддерживает ли Spring Security 5 тип предоставления пароля для клиента? Я нашел все остальные типы предоставления, но не пароль в реализации Spring Security 5.

1 Ответ

0 голосов
/ 01 ноября 2018

Spring Security 5 не поддерживает его, см. Ссылка на Spring Security :

6,6 OAuth 2.0 Client

Функции клиента OAuth 2.0 обеспечивают поддержку роли клиента, как это определено в OAuth 2.0 Authorization Framework.

Доступны следующие основные функции:

  • Предоставление кода авторизации
  • Предоставление клиентских учетных данных
  • WebClient расширение для сред сервлетов (для создания защищенных запросов ресурсов)

HttpSecurity.oauth2Client() предоставляет ряд параметров конфигурации для настройки клиента OAuth 2.0.

Однако вы можете использовать Spring Security OAuth2, см. Руководство для разработчиков OAuth 2 :

Доступ к защищенным ресурсам

Как правило, веб-приложение не должно использовать предоставление паролей, поэтому избегайте использования ResourceOwnerPasswordResourceDetails, если можете вместо AuthorizationCodeResourceDetails. Если вам крайне необходимо предоставить пароли для работы с клиентом Java, используйте тот же механизм для настройки OAuth2RestTemplate и добавьте учетные данные в AccessTokenRequest (который является картой и является эфемерным), а не ResourceOwnerPasswordResourceDetails (который используется совместно все токены доступа).

...