Http адаптер исходящего канала с базовой аутентификацией

Я хочу использовать Spring Boot и Integration DSL для отправки сообщений в виде HTTP Post в службу отдыха. У кого-нибудь есть пример, как это сделать с (базовой) аутентификацией?

Все остальное вроде работает нормально. Журнал показывает "org.springframework.web.client.HttpClientErrorException: 401 Unauthorized".

1 ответ

На самом деле ничего общего с Basic Auth со стороны интеграции весны.

Это ответственность ClientHttpRequestFactory,

Например, я делал что-то вроде этого:

    @Bean
    public ClientHttpRequestFactory clientHttpRequestFactory(@Value("username") String username, 
                                                             @Value("password") String password) {
        HttpClient httpClient = HttpClientBuilder.create().
                setDefaultCredentialsProvider(getCredentialsProvider(username, password))
                .build();
        HttpComponentsClientHttpRequestFactory clientHttpRequestFactory =
                new HttpComponentsClientHttpRequestFactory(httpClient);
        return clientHttpRequestFactory;
    }

    private CredentialsProvider getCredentialsProvider(final String username, final String password) {
        CredentialsProvider cp = new BasicCredentialsProvider();
        cp.setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT),
                new UsernamePasswordCredentials(username, password));
        return cp;
    }

И залить это clientHttpRequestFactory в Http.outboundGateway().requestFactory(),

Все остальные ClientHttpRequestFactory могут быть другие способы настройки Basic Auth по их запросам объекты.

Другие вопросы по тегам