为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 Apache Httpclient 3 检索 Websphere TrustStore

如何使用 Apache Httpclient 3 检索 Websphere TrustStore

叮当猫咪 2021-08-06 11:19:52
我正在使用 Apache Httpclient (commons httpclient 3.1)。到目前为止,我们通过指定 Keystore 和 Trustsore 文件的物理路径来进行客户端调用。同时,这些也在 Websphere 8.5 中进行了配置。例如在:SSL 证书和密钥管理 > 密钥库和证书 > CellDefaultTrustStore > 签名者证书如何在我的代码中指定使用来自 webshphere 的 Keystore 和 Trustsore,而不是作为物理文件获取。我正在使用此处指定的类似代码:
查看完整描述

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

您可以检索默认 SSL 套接字工厂(将由 WAS 管理的工厂)并要求 httpclient 将其用于 https,而不是检索密钥库的路径。在以后的 httpclient 版本中,这更容易。

在旧版本中,您需要为 https 和默认套接字工厂 javax.net.ssl.SSLSocketFactory.getDefault() 注册一个协议,然后配置您的客户端以使用它。


查看完整回答
反对 回复 2021-08-06
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

您可以创建包含文件路径的命名空间绑定,以便从您的代码外部化这些路径。


在 WAS 中设置两个名称空间绑定,一个用于密钥库,一个用于信任库。这是在环境 > 命名 > 命名空间绑定下的管理控制台中。


设置范围以引用您的应用程序或集群。将绑定类型设置为字符串。将绑定标识符和名称相对于查找名称前缀设置为标识它的名称,例如(your application)keystorefile. 将字符串值指定为服务器上密钥库的路径。


设置这些条目后,您可以使用 JNDI 来检索密钥库和信任库文件位置。Spring 有一个 JndiObjectFactoryBean,您可以使用 Configuration 类中的绑定标识符和预期类型对其进行配置,并使用限定符将其标识给 Spring:


@Bean @Qualifier("fooAppKeyStorePath")

public JndiObjectFactoryBean fooAppKeyStorePath() {

    JndiObjectFactoryBean jndiObjectFactoryBean = new JndiObjectFactoryBean();

    jndiObjectFactoryBean.setJndiName("yourBindingIdentifier");

    jndiObjectFactoryBean.setExpectedType(String.class);

    return jndiObjectFactoryBean;

}

字符串值被注入到用该限定符标记的配置方法参数中。


查看完整回答
反对 回复 2021-08-06
  • 2 回答
  • 0 关注
  • 191 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信