使用KeyStore.getEntry()时出现UnsupportedOperationException吗?
|
我正在尝试从Mac OSX 10.6上的Java KeyStore检索条目。我的代码在Windows和Linux上运行良好,但是在OSX上运行时,出现以下异常:
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上引发此异常吗?这是此操作系统上的JVM中的错误吗?有人看过吗?
没有找到相关结果
已邀请:
2 个回复
细屠截殴些
的实现,可以发现以下内容:
那里有引发异常的确切条件。 那么
什么时候返回true? 根据文档,它是这样做的... ...如果给定别名标识的条目是通过调用
创建的,或者是通过调用
的
创建的 但是,该方法是抽象的,因此在不知道所使用的确切实现的情况下很难进一步挖掘。根据您的描述,实现之间的逻辑似乎略有不同。
期差骇蓟