gpt4 book ai didi

java - 我可以使用 URL 路径设置 Keystore 属性吗?

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

我正在尝试为 Google App Engine 上的 JAX-WS 网络服务客户端获取双向 SSL 身份验证。

我比较确定我可以通过转换为 BindingProvider 并设置 javax.net.ssl.keystore 属性来设置客户端的私钥,如下所示:

WebServicePortType service = new WebService().getWebServicePort();
((BindingProvider) service).getRequestContext().put("javax.net.ssl.keyStore", "client_cert.p12"

我能找到的所有示例都假定 client_cert.p12 是本地文件系统上的文件。

由于我们在 Google App Engine 上,我们被禁止直接访问文件系统。

此上下文是否接受 keystore 位置的 URL?如果没有,有什么方法可以在不需要文件系统访问权限的 Web 服务上设置 keystore ?

谢谢

编辑:

SSLSocketFactorySSLContextKeyManagerKeyManagerFactory 都不允许在 GAE 上使用。

最佳答案

我用谷歌搜索并从 here 得到了以下解决方法.

  1. 将 keystore 文件作为资源流读取:MyClass.class.getClassLoader().getResourceAsStream(jarCertFile);
  2. 写入本地文件
  3. 将 keystore 属性设置为本地文件,System.setProperty("javax.net.ssl.keyStore",trustStore);

但它需要您应该能够在 GAE 中创建一个本地文件,这在阅读您提到的链接后似乎是可能的。您可以在 ServletContextListener 中配置此代码,这将在应用程序启动时创建此文件。

编辑:

此解决方法假定 keystore 文件捆绑在您的应用程序存档中。

关于java - 我可以使用 URL 路径设置 Keystore 属性吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11250548/

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