Мой вопрос относится только к spring-security 5.1.0 и использованию Spring WebClient.Я работаю в серверной среде, используя Spring Boot 2.1.0.Этот вопрос , возможно, уже задавался, но в то время ответить на него не удалось.
Считывание замечаний к выпуску spring-security 5.1.0 , похоже, онидобавили поддержку потока аутентификации client_credentials, в частности добавив его в bean-компонент WebClient, чтобы конечному пользователю никогда не приходилось беспокоиться о токене аутентификации.Я пытаюсь сделать именно это, но API / документация полностью потеряли меня.Моя текущая работа ниже ...
private ClientRegistration clientRegistration() {
return ClientRegistration.withRegistrationId("registration-id")
.clientId("client-id")
.clientSecret("secret")
.tokenUri("token-url")
.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC)
.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS)
.scope("scopes")
.build();
}
@Bean
public WebClient webClient() {
ClientRegistrationRepository clientRegistrationRepository = new InMemoryClientRegistrationRepository(this.clientRegistration());
OAuth2AuthorizedClientService oAuth2AuthorizedClientService = new InMemoryOAuth2AuthorizedClientService(clientRegistrationRepository);
# These are unused ^ but pieces of documentation seem to indicate they are required
return WebClient.builder()
.filter(new ServerOAuth2AuthorizedClientExchangeFilterFunction()) # this requires 2 arguments that I do not have
.build();
}
Моя конечная цель - иметь возможность автоматически связывать bean-компонент WebClient где угодно и просто делать запросы с автоматически добавляемым однонаправленным .*