设置最低 TLS 版本 Micronaut HttpClient

问题描述 投票:0回答:2

Micronaut 的文档有限。

我们正在使用

io.micronaut.http.client.HttpClient
访问第三方 API。

我能找到的就是这个https://docs.micronaut.io/latest/guide/configurationreference.html但它没有给出示例。

我们如何指定准备与之交互的 TLS 版本?

ssl https micronaut tls1.3
2个回答
1
投票

要指定准备与 io.micronaut.http.client.HttpClient 交互的 TLS 版本,可以使用 HttpClientConfiguration 类的 sslContext 属性。

import io.micronaut.context.annotation.Factory;
import io.micronaut.context.annotation.Value;
import io.micronaut.http.client.HttpClientConfiguration;
import io.micronaut.http.client.HttpClientFactory;
import io.micronaut.http.client.annotation.Client;
import javax.inject.Singleton;
import javax.net.ssl.SSLContext;
import java.security.NoSuchAlgorithmException;

@Factory
public class MyHttpClientFactory {

    @Value("${my.http.client.url}")
    String url;

    @Singleton
    @Client("myClient")
    HttpClientConfiguration myClientConfig(HttpClientFactory factory) throws NoSuchAlgorithmException {
        HttpClientConfiguration clientConfig = factory.createConfiguration(url);
        SSLContext sslContext = SSLContext.getInstance("TLSv1.2");
        sslContext.init(null, null, null);
        clientConfig.setSslContext(sslContext);
        return clientConfig;
    }
}

在此代码中,我们创建一个名为 MyHttpClientFactory 的工厂类,它定义了 myClientConfig 方法。此方法创建一个新的 HttpClientConfiguration 实例并将其 sslContext 属性设置为使用 TLS 版本 1.2。

然后,您可以使用此工厂类创建 io.micronaut.http.client.HttpClient 的实例,准备使用 TLS 版本 1.2 与服务器进行交互。


0
投票

可以通过properties/yml进行配置:

micronaut.ssl.protocols=TLSv1.2
© www.soinside.com 2019 - 2024. All rights reserved.