как настроить автоконфигурацию oauth2 webClient?

204
09 апреля 2022, 17:40

Есть приложение, с oauth2 где параметры WebClient указываются через been

@Bean
    public WebClient getWebClient() {
        ClientRegistration.Builder clientRegestrationBuilder = ClientRegistration.withRegistrationId("authProvider");
        clientRegestrationBuilder.clientId("superad");
        clientRegestrationBuilder.clientSecret("d000f0f8-9f0d-451c-9257-0720be5839e7");
        clientRegestrationBuilder.tokenUri("https://leantegra.leantegra.com/api/public/token/");
        clientRegestrationBuilder.authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS);
        clientRegestrationBuilder.clientAuthenticationMethod(ClientAuthenticationMethod.BASIC);
        ClientRegistration clientRegistration = clientRegestrationBuilder.build();

        ReactiveClientRegistrationRepository repo = new InMemoryReactiveClientRegistrationRepository(clientRegistration);
        ServerOAuth2AuthorizedClientExchangeFilterFunction oauth = new ServerOAuth2AuthorizedClientExchangeFilterFunction(repo,
                new UnAuthenticatedServerOAuth2AuthorizedClientRepository());
        return WebClient.builder().filter(oauth).build();
    }

Но на сколько я понимаю, spring boot может избавить от такой конфигурации, используя application.properties файл, например:

spring.security.oauth2.client.registration.authProvider.authorization-grant-type=client_credentials
spring.security.oauth2.client.registration.authProvider.client-id=superad
spring.security.oauth2.client.registration.authProvider.client-secret=d000а0а8-9f0d-451c-9257-0720be5839e7
spring.security.oauth2.client.provider.authProvider.token-uri=https://leantegra.leantegra.com/api/public/token/
spring.security.oauth2.client.provider.authentication.user-info-authentication-method=BASIC

без определения бина. Как это сделать?

READ ALSO
Маппинг json в DTO с помощью Jackson

Маппинг json в DTO с помощью Jackson

Друзья, добрый день! Есть такая dto'шка:

84
Использование потоков в Telegram боте на java

Использование потоков в Telegram боте на java

Мой бот авторизуется на стороннем ресурсеДля этого бот спрашивает пользователя несколько вопросов(местоположение), эти данные нужны для...

220
Сохранение положения RadioGroup

Сохранение положения RadioGroup

Есть RadioGroup, состоящий из двух элементовКак сохранить их положение (т

163