2

Spring Boot と Integration DSL を使用して、メッセージを HTTP Post として残りのサービスに送信したいと考えています。(基本)認証でこれを行う方法の例はありますか?

他のすべては正常に機能しているようです。ログには「org.springframework.web.client.HttpClientErrorException: 401 Unauthorized」と表示されます。

4

1 に答える 1

1

Basic Auth実際、Spring Integration 側からは何もする必要はありません。

これは の責任です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;
    }

そして、これを に注入clientHttpRequestFactoryHttp.outboundGateway().requestFactory()ます。

他のすべてには、要求オブジェクトClientHttpRequestFactoryを構成する別の方法がある場合があります。Basic Auth

于 2016-01-25T15:46:18.310 に答える