Mac OSX 10.6のJava KeyStoreからエントリを取得しようとしています。私のコードは、WindowsおよびLinux上で正常に動作が、私はOSX上でそれを実行したときに、私は次の例外を取得:KeyStore.getEntry()を使用しているときにUnsupportedOperationExceptionが発生しましたか?
java.lang.UnsupportedOperationException
at java.security.KeyStoreSpi.engineGetEntry(KeyStoreSpi.java:466)
at java.security.KeyStore.getEntry(KeyStore.java:1261)
は、ここに私のコードです:
String keyStorePath = ...
PasswordProtection pp = new PasswordProtection("password".toCharArray());
CallbackHandlerProtection chp = new CallbackHandlerProtection(
new CallbackHandler() {
@Override
public void handle(Callback[] callbacks)
throws IOException, UnsupportedCallbackException {
for (int i = 0; i < callbacks.length; i++) {
if (callbacks[i] instanceof PasswordCallback) {
PasswordCallback pc = (PasswordCallback) callbacks[i];
pc.setPassword("password".toCharArray());
}
}
}
});
try {
KeyStore.Builder kb = Builder.newInstance("JCEKS", null, new File(
keyStorePath), chp);
KeyStore ks = kb.getKeyStore();
Enumeration<String> aliases = ks.aliases();
while (aliases.hasMoreElements()) {
String alias = aliases.nextElement();
KeyStore.Entry entry = ks.getEntry(alias, chp);
}
} catch (Exception e) {
e.printStackTrace();
}
この例外は、OSX上でスローされている理由の任意のアイデア?このOSのJVMのバグですか?誰もこれまでこれを見たことがありますか?ライン466でKeyStoreSpi.java
の実装を見てみると