6

私はカスタムSSLファクトリを持っており、そこで自分のトラストストアをロードします。

これで、truststore.jksファイルをプロジェクトのルートフォルダーに配置すると、次の行で機能します。

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

しかし、パスがsrc / main/resourcesであるmavenで構築されたリソースフォルダー内にトラストストアが必要です。

それから私はそうします、そしてそれは次の行で動作しません:

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);

2行目を次のように変更します

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

誰もが理由を知っていますか?この解決策は大丈夫ですか?

于 2013-02-21T00:14:42.713 に答える