В настоящее время у нас есть несколько приложений Spring Boot, подключающихся к другим сервисам с использованием учетной записи службы. До сих пор мы использовали AccessTokenRequest OAuth2ClientContext на RestTemplate, чтобы поместить пользователя и пароль учетной записи службы, и использовали возвращенный токен OAuth для подключения к другим службам.
Сейчас мы создаем новый Для приложения, использующего Spring Boot 5.2, и поскольку теперь необходимо использовать новый OAuth Spring Security, отдельная библиотека OAuth устарела, мы также хотели бы заменить решение RestTemplate на решение WebClient, так как RestTemplate также станет устаревшим в ближайшем будущем. Я пробовал несколько способов получения токена, но не смог найти решение, которое работает.
Я нашел настройки, подобные упомянутым в Spring Security 5 Replacement for OAuth2RestTemplate , но нет способа поместить имя пользователя и пароль в WebClient. Я обнаружил другие подходы, использующие ClientRegistrationRepository вместо ReactiveClientRegistrationRepository, и некоторые из этих подходов на самом деле имеют варианты (например, Как повторно инициализировать предоставление пароля в Spring security 5.2 OAuth ) для помещения имени пользователя и пароля в AuthorizedClientManager, который становится параметром при создании экземпляра фильтра, но каким-то образом я всегда получаю сообщение о том, что невозможно найти Bean-компонент ClientRegistrationRepository, независимо от того, какие свойства я добавляю в application.yaml (возможно, это не работает, потому что приложение такое приложение MVC вместо WebFlux?)
Я знаю, что мне нужно установить тип разрешения авторизации как «пароль», но уже есть кто-то, кто спрашивает, как заставить это работать ( Spring Security 5.2.1 + spring-security-oauth2 + WebClient: как использовать тип предоставления пароля ) и пока нет ответов на этот вопрос.
Так что ... они сделали? не одобряйте этот простой способ использования usern ame и пароль, чтобы получить токен и использовать этот токен для подключения к другому сервису в Spring Security 5.2? И если да, что следует использовать сейчас?