gpt4 book ai didi

scala - Play Framework : How can I use a given certifcate for an HTTP WS. url 调用?

转载 作者:太空宇宙 更新时间:2023-11-03 12:49:46 24 4
gpt4 key购买 nike

我有一个来自 REST 服务提供商的证书,我需要告诉给定的 HTTP get 调用在联系给定的提供商时使用它。我正在处理的代码库过去使用第三方库来实现此目的,但我想利用 WS.url 调用的超时功能和细节。

我查看了 API 文档和网站上的文档,我只发现了一些线索,这些线索到目前为止还没有引导我找到任何解决方案。

最佳答案

您应该能够通过调整 AsyncHttpClient 的 SSLContext 来处理它。这个想法是为底层客户端提供客户端证书。我假设你有一个 pkcs12 飞来飞去。

似乎无法更新 AsyncHttpClientConfig,因为它是自动初始化的。因此,应该实例化并使用一个新的客户端。

以下内容应按照包含 pkcs12 文件的 SSLContext 所述发送请求。

    KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory
.getDefaultAlgorithm());
KeyStore clientCert = KeyStore.getInstance("pkcs12");
InputStream is = new FileInputStream("/conf/brazo.p12");

clientCert.load(is, "brazo".toCharArray());
kmf.init(clientCert, "brazo".toCharArray());

SSLContext sc = SSLContext.getInstance("TLSv1");
sc.init(kmf.getKeyManagers(), null,
new SecureRandom());
AsyncHttpClientConfig config = new AsyncHttpClientConfig.Builder().setSSLContext(sc).build();
AsyncHttpClient client = new AsyncHttpClient(config);

String url = "https://your-url";
Request req = new RequestBuilder().setUrl(url).setMethod("GET").build();
client.executeRequest(req);

遗憾的是,这从 Play 中消失了!标准 WS 库。

关于scala - Play Framework : How can I use a given certifcate for an HTTP WS. url 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17071105/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com