В spring-security-oauth2:2.4.0.RELEASE
классах , таких как OAuth2RestTemplate
, OAuth2ProtectedResourceDetails
и ClientCredentialsAccessTokenProvider
все были помечены как нежелательные.
От javadoc для этих классов это указывает на руководство по миграции безопасности Spring, которое подсказывает, что люди должны перейти к основному проекту Spring-Security 5. Однако у меня возникают проблемы с поиском того, как бы я реализовал свой вариант использования в этом проекте.
Во всей документации и примерах рассказывается об интеграции с 3-сторонним поставщиком OAuth, если вы хотите, чтобы входящие запросы к вашему приложению были аутентифицированы, и вы хотите использовать сторонний OAuth-поставщик для проверки личности.
В моем случае использования все, что я хочу сделать, это сделать запрос RestTemplate
к внешнему сервису, защищенному OAuth. В настоящее время я создаю OAuth2ProtectedResourceDetails
свой идентификатор клиента и секрет, который я передаю в OAuth2RestTemplate
. Я также обычай ClientCredentialsAccessTokenProvider
добавил в OAuth2ResTemplate
том , что только добавляет некоторые дополнительные заголовки в маркер запроса, которые требуются от поставщика OAuth я использую.
В документации Spring-Security 5 я нашел раздел, в котором упоминается настройка запроса токена , но опять-таки он выглядит в контексте аутентификации входящего запроса у стороннего поставщика OAuth. Непонятно, как бы вы использовали это в сочетании с чем-то вроде a, ClientHttpRequestInterceptor
чтобы каждый исходящий запрос к внешней службе сначала получал токен, а затем добавлял его в запрос.
Также в приведенном выше руководстве по миграции есть ссылка на то, OAuth2AuthorizedClientService
что, по его словам, полезно использовать в перехватчиках, но опять-таки это похоже на то, что оно опирается на такие вещи, ClientRegistrationRepository
которые, по-видимому, и поддерживают регистрацию сторонних поставщиков, если вы хотите использовать которые обеспечивают проверку входящего запроса.
Можно ли каким-то образом использовать новые функции Spring-Security 5 для регистрации поставщиков OAuth, чтобы получить токен для добавления к исходящим запросам из моего приложения?
WebClient
) или что-то подобное используется для получения токена OAuth из пользовательский поставщик OAuth (не один из поддерживаемых OoTB, как Facebook / Google), чтобы добавить его в исходящий запрос. Все примеры, кажется, сосредоточены на аутентификации входящих запросов с другими провайдерами. Есть ли у вас какие-либо указатели для каких-либо хороших примеров?