WebClientの使用例を探しています。 Spring 5 WebClientを使用してhttpsと自己署名入り証明書を使用してRESTサービスを照会することです。Spring 5 WebClient(sslを使用)
2
A
答えて
4
insecure TrustManagerFactoryの例では、検証なしですべてのX.509証明書(自己署名を含む)を信頼しています。ドキュメントからの重要な注意:
このTrustManagerFactoryを実稼働環境で使用しないでください。純粋にテスト目的のためであり、したがって非常に安全ではありません。
@Bean
public WebClient createWebClient() throws SSLException {
SslContext sslContext = SslContextBuilder
.forClient()
.trustManager(InsecureTrustManagerFactory.INSTANCE)
.build();
ClientHttpConnector httpConnector = new ReactorClientHttpConnector(opt -> opt.sslContext(sslContext));
return WebClient.builder(httpConnector).build();
}
0
別の方法、あなたはどこトラストストアとキーストアの春ブートサーバーから設定を使用して、注入されたWebクライアントを変更するなどのような春のBeanを作成するために、生産のコードをされている番組にしたい場合あります。クライアントでは、2-way-sslを使用している場合は、キーストアを指定する必要があります。確かに、本当にクールなバネブートサーバ設定と同じように、なぜssl-stuffが事前設定されずに簡単に注入可能でないのか。
ここimport io.netty.handler.ssl.SslContext;
import io.netty.handler.ssl.SslContextBuilder;
.
.
.
@Bean
WebClientCustomizer configureWebclient(@Value("${server.ssl.trust-store}") String trustStorePath, @Value("${server.ssl.trust-store-password}") String trustStorePass,
@Value("${server.ssl.key-store}") String keyStorePath, @Value("${server.ssl.key-store-password}") String keyStorePass, @Value("${server.ssl.key-alias}") String keyAlias) {
return new WebClientCustomizer() {
@Override
public void customize(Builder webClientBuilder) {
SslContext sslContext;
try {
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType());
trustStore.load(new FileInputStream(ResourceUtils.getFile(trustStorePath)), trustStorePass.toCharArray());
List<Certificate> certificateCollcetion = Collections.list(trustStore.aliases()).stream().filter(t -> {
try {
return trustStore.isCertificateEntry(t);
} catch (KeyStoreException e1) {
throw new RuntimeException("Error reading truststore", e1);
}
}).map(t -> {
try {
return trustStore.getCertificate(t);
} catch (KeyStoreException e2) {
throw new RuntimeException("Error reading truststore", e2);
}
}).collect(Collectors.toList());
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
keyStore.load(new FileInputStream(ResourceUtils.getFile(keyStorePath)), keyStorePass.toCharArray());
sslContext = SslContextBuilder.forClient()
.keyManager((PrivateKey) keyStore.getKey(keyAlias, keyStorePass.toCharArray()))
.trustManager((X509Certificate[]) certificateCollcetion.toArray(new X509Certificate[certificateCollcetion.size()]))
.build();
} catch (Exception e) {
log.error("Error creating web client", e);
throw new RuntimeException(e);
}
ClientHttpConnector connector = new ReactorClientHttpConnector((opt) -> {
opt.sslContext(sslContext);
});
webClientBuilder.clientConnector(connector);
}
};
}
あなたがWebクライアントを使用して一部、: 輸入org.springframework.web.reactive.function.client.WebClient。
@Component
public class ClientComponent {
public ClientComponent(WebClient.Builder webClientBuilder, @Value("${url}") String url) {
this.client = webClientBuilder.baseUrl(solrUrl).build();
}
}
関連する問題
- 1. Spring 5のWebClientコールのログ方法
- 2. Spring Reactive WebClient
- 3. WebClient Sprint 5 reactorウェブを使用したマイクロサービスの呼び出し
- 4. sslでspring-ldapを使用する
- 5. Spring 5 WebClientを使用してHTTPプロキシをサポートするにはどうすればよいですか?
- 6. WebClientを使用してReactive Spring Rest APIを使用する方法
- 7. C#でWebclientを使用してSSLチェックを無視する方法
- 8. webclientアップロード値async over ssl c#xamarin
- 9. WebClientとgetpageを使用
- 10. Spring 5 Reactive Programming - WebClient ClassCastException SpringからのJSONをアンマーシャリングするときReactive Controllerがデータをストリームする
- 11. MVC 5 - WebClientを使用してPartialViewでWebページをレンダリングする場合
- 12. SSLとSpringとのSSL
- 13. Spring WebSluxアプリケーションでSpring WebSessionIdResolverをSpring Security 5で使用する方法は?
- 14. Nettyの代わりにJettyでSpring WebClientを使用するには?
- 15. Spring 5使い方log4j
- 16. 私のandroid spring resttemplateにSSLを使用する方法
- 17. WebClientをWindows Ceで使用する。
- 18. WebClientはKeepAliveを使用しますか?
- 19. WebSocket用Apache SSLオフロード/リバースプロキシ(Spring App)
- 20. Spring AsyncResttemplate HTTPs(SSL)サービスコール
- 21. Spring 5 MVC - InternalResourceViewResolverとSpring Security
- 22. Spring 4 with Elasticsearch 5
- 23. Spring 5を使用した実際のコントローラの例:Web Reactive
- 24. Nginxの背後にある、Rails 5のInvalidAuthenticityTokenをSSLを使用して
- 25. WebClientを使用してシリアル化されたデータをアップロード
- 26. 単体テストでSpring WebClientを模擬する方法
- 27. Spring-Hibernate 5 JARファイルをサポート
- 28. JUnit 5とSpring Framework 4.3.x
- 29. SSLでAkka.net.ioを使用
- 30. play1.2.4アプリケーションでsslを使用
あなたの答えはありがたいです。また、読み取りと接続でタイムアウトを設定する必要があります。どのように達成できますか? – Seb