2013-02-20 34 views
6

Kendi güvenilir mağazamı yüklediğim özel bir SSL fabrikam var. Ben truststore.jks proje kök klasöre dosya koyduğunuzdaKaynak klasörün (maven) içinde bulunan bir anahtar deposu nasıl yüklenir?

Şimdi, aşağıdaki satırla çalışır:

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

Ama maven ile inşa edilmiştir benim kaynak klasör içinde benim truststore istediğiniz yere yol src/main/resources.

Sonra yapmak ve onu aşağıdaki satırla çalışmıyor: girdi akışı var

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

rağmen. Ben kontrol ettim. Sadece ks.load (...) yaptığımda başarısız olur. Ben olsun

istisnadır:

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

Bunun nedeni nedir?

Selamlar, Dave

+0

Deneyebileceğiniz tek şey aklınıza gelir. GetResourceAsStream öğesinde "/truststore.jks" ifadesini belirtin, böylece sınıf yolunun kökünden arama yapar. –

+0

Bunu da denedim, şanssız ... –

cevap

0

Tuhaf, ben

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

ve

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

Herkes bilir neden

ikinci satırı değiştirmek zorunda

... artık çalışıyor? Bu çözüm iyi mi?

+4

Bu yalnızca yerel geliştirme ortamınızda çalışacaktır. Artefaktınızı oluşturduktan sonra 'src/main/resources 'yolu geçersiz olacaktır. – vegemite4me

+1

Lütfen orijinal sorunuzu yanıt olarak yeni bir soru göndermek yerine güncelleyin. –

+0

Bu çözüm, güven deposunun bir kaynak olduğu gerçeğiyle alakası yoktur. Cevabınız (daha önce de belirtildiği gibi) sadece geliştirme sırasında çalışır, bu yüzden çalışmaz! –

İlgili konular