Spring Boot と Integration DSL を使用して、メッセージを HTTP Post として残りのサービスに送信したいと考えています。(基本)認証でこれを行う方法の例はありますか?
他のすべては正常に機能しているようです。ログには「org.springframework.web.client.HttpClientErrorException: 401 Unauthorized」と表示されます。
Spring Boot と Integration DSL を使用して、メッセージを HTTP Post として残りのサービスに送信したいと考えています。(基本)認証でこれを行う方法の例はありますか?
他のすべては正常に機能しているようです。ログには「org.springframework.web.client.HttpClientErrorException: 401 Unauthorized」と表示されます。
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;
}
そして、これを に注入clientHttpRequestFactory
しHttp.outboundGateway().requestFactory()
ます。
他のすべてには、要求オブジェクトClientHttpRequestFactory
を構成する別の方法がある場合があります。Basic Auth