6

我有一个自定义 SSL 工厂,我在其中加载自己的信任库。

现在,当我将 truststore.jks 文件放入项目根文件夹时,它可以使用以下行:

ks.load(new FileInputStream("/truststore.jks", passphrase);

但我希望我的信任库在我的资源文件夹中,该文件夹是用 maven 构建的,路径是src/main/resources

然后我这样做了,但它不适用于以下行:

ks.load(this.getClass().getResourcesAsStream("/truststore.jks"), passphrase);

虽然输入流存在。我检查了它。只有当我执行 ks.load(...) 时它才会失败。

我得到的例外是:

 java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

这是为什么?

问候,戴夫

4

1 回答 1

-5

奇怪,现在可以了...

我有

Properties systemProps = System.getProperties();
systemProps.put( "javax.net.ssl.trustStore", "/truststore.jks");
systemProps.put( "javax.net.ssl.trustStorePassword", "changeit");
System.setProperties(systemProps);

并将第二行更改为

systemProps.put( "javax.net.ssl.trustStore", "src/main/resources/truststore.jks");

有谁知道为什么?这个解决方案好吗?

于 2013-02-21T00:14:42.713 回答