我尝试在 Windows 2008 64 位机器上使用 sunjava jdk 7 update 11 加载 pkcs11 密钥库。IAM 面临的问题是我能够使用
Keystore ks = Keystore.getInstance("PKCS11", provider);
但是当我说
keystore.load(null, "pwdstring".toCharArray[])
在这一行我面临一个错误说,请找到堆栈跟踪
java.util.MissingResourceException: Can't find resource for bundle sun.security.util.Resources, key PKCS11 Token [providerName] Password:
at java.util.ResourceBundle.getObject(ResourceBundle.java:393)
at java.util.ResourceBundle.getString(ResourceBundle.java:353)
at sun.security.util.ResourcesMgr.getString(ResourcesMgr.java:52)
at sun.security.pkcs11.SunPKCS11.login(SunPKCS11.java:1084)
at sun.security.pkcs11.P11KeyStore.login(P11KeyStore.java:874)
at sun.security.pkcs11.P11KeyStore.engineLoad(P11KeyStore.java:764)
at java.security.KeyStore.load(KeyStore.java:1214)
at HSM_TokenSunjava.main(HSM_TokenSunjava.java:37)
还有一件事使用相同的代码和相同的 PKCS11 令牌,我能够在我的机器上运行 Windows 64 位我不明白 Windows 2008 机器有什么问题。
请帮帮我
谢谢
我遇到了同样的问题,并验证了资源是否已从"PKCS11 Token [providerName] Password:"
更改为"PKCS11.Token.providerName.Password."
因此SUNPKCS11
对"PKCS11 Token [providerName] Password: "
的调用必须更改为新值。
此致敬意。
将JDK版本更改为JDK6解决了我的问题。