dosyasından başlatırken karşılaşılan sorun org.apache.ws.security.components.crypto.CryptoFactory
örneğini kullanarak org.apache.ws.security.components.crypto.Merlin
örneğini özellikle CryptoFactory.getInstance(properties)
yöntemini kullanarak çalışıyorum.Bir JavaKeyStore dosyasını
Bu consistantly kaybedilebilir
java.security.UnrecoverableKeyException: Password verification failed
deposu dosyasına şifre kaynaklanır
java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
komut satırında keytool ile kontrol edilmiştir atmak ve doğru olacaktır .
deposu aşağıdaki işlem aracılığı oluşturulur: Tutulma proje yüklenicisinin kök dizininde olduğunu
.
public class App {
public static void main(String[] args) throws CredentialException,
IOException {
System.out.println("Starting");
Properties p = new Properties();
p.setProperty("org.apache.ws.security.crypto.merlin.keystore.password",
"password");
p.setProperty("org.apache.ws.security.crypto.provider",
"org.apache.ws.security.components.crypto.Merlin");
p.setProperty("org.apache.ws.security.crypto.merlin.keystore.type",
"jks");
p.setProperty("org.apache.ws.security.crypto.merlin.file", "./testkeystore.jks");
Crypto crypto = CryptoFactory.getInstance(p);
System.out.println(" Complete ");
}
}
ve aşağıdaki özel durum oluşturulur: şu şekildedir:
testi applciation olduğunu
Exception in thread "main" java.lang.RuntimeException: org.apache.ws.security.components.crypto.Merlin cannot create instance
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:225)
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:180)
at org.apache.ws.security.components.crypto.CryptoFactory.getInstance(CryptoFactory.java:73)
at com.restart.test.cryptotest2.App.main(App.java:22)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.apache.ws.security.components.crypto.CryptoFactory.loadClass(CryptoFactory.java:211)
... 3 more
Caused by: org.apache.ws.security.components.crypto.CredentialException: Failed to load credentials.
at org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:174)
at org.apache.ws.security.components.crypto.AbstractCrypto.<init>(AbstractCrypto.java:135)
at org.apache.ws.security.components.crypto.Merlin.<init>(Merlin.java:71)
... 8 more
Caused by: java.io.IOException: Keystore was tampered with, or password was incorrect
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:772)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1214)
at org.apache.ws.security.components.crypto.AbstractCrypto.load(AbstractCrypto.java:168)
... 10 more
Caused by: java.security.UnrecoverableKeyException: Password verification failed
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:770)
... 13 more
için "şifresini" ayarlandığında cmd penceresinde belirtildiği şekilde şifre, ama herkes tarafından uygulama reddediyor hesaplar, hiçbir sorun olmadan keytool -storepasswd
kullanarak parola değiştirebilir, Bu yüzden sağladığım şifreyi biliyorum; Burada yanlış olan ne olabilir? Bunu bir gün boyunca tam olarak başarısızlıkla ayıklamaya çalışıyorum.
Sağladığım ek bilgiler varsa lütfen bize bildirin.
düzenleme -
folloing maven bağımlılık bu testi inşa etmek gereklidir: StackTrace
'org.apache.ws diyor çünkü
<dependency>
<groupId>org.apache.ws.security</groupId>
<artifactId>wss4j</artifactId>
<version>1.5.8</version>
<scope>provided</scope>
</dependency>
Sadece adımlarınızı Oracle JDK 1.6 ile tekrarlayın ve herhangi bir hata olmadan çalışın. Belki şifreniz yanlış mı yoksa farklı anahtar deposu açmaya mı çalışıyorsunuz? Yeniden oluşturmayı deneyin ve anahtar deposuna mutlak yol ayarlayın. – user1516873
Merhaba Kullanıcı, Yorumlarınızı okuduktan sonra, JDK/JRE'nin farklı bir sürümüne karşı geliştirdim ve çalıştım, rt.java kaynaklarını indirdikten sonra ve adım adım geçtikten sonra CryptoBase sınıfının iki JavaKeyStores (benim .jks dosya), iyi örnekleme, ama ikinci başarısızlık neden oldu “changeit” varsayılan parola yoktu 'jre \ lib \ security>' 'cacerts' anahtar deposu oldu; Şimdi jre anahtar deposundaki şifreyi değiştirdim ve orijinal jre/jdk'imde iyi çalışıyorum. Bu yüzden bu bir yapılandırma olduğunu onaylamak için teşekkürler .. – Waltzy
... benim için bir kodlama sorunu ve değil. Bununla birlikte, boşa gitmem için rep ödülüm için çok sevindim, bu yüzden eğer benzer bir etki yaratmak istiyorsanız, bunu size verebilirim. – Waltzy