У меня есть Java 1.7 с приложением Eclipse Luna, где я пытаюсь получить псевдонимы хранилища ключей Java после его загрузки.
KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType());
ks.load(inputStream, password.toCharArray());
//Print aliases below
Enumeration<String> aliases=null;
try
{
aliases = ks.aliases();
}
catch (KeyStoreException e)
{
e.printStackTrace();
}
while (aliases.hasMoreElements())
{
String alias = aliases.nextElement();
System.out.println("Alias is: "+alias);
}
Мне удалось заставить это работать в Eclipse Indigo в Java 1.6, но тот же код в Java 1.7 с Eclipse Luno выдает мне эту ошибку:
java.security.KeyStoreException: Uninitialized keystore
at java.security.KeyStore.aliases(KeyStore.java:1002)
at sun.security.ssl.SunX509KeyManagerImpl.<init>(SunX509KeyManagerImpl.java:125)
at sun.security.ssl.KeyManagerFactoryImpl$SunX509.engineInit(KeyManagerFactoryImpl.java:68)
at javax.net.ssl.KeyManagerFactory.init(KeyManagerFactory.java:259)
Я вижу, что aliases
устанавливается на null
при использовании 1,7. Не уверен, зависит ли это от окружения, но это то, что я смог выяснить до сих пор. Мне нужно будет заставить его работать с Java 1.7, так как мне нужно использовать TLSV1.2, который Java 6 не поддерживает.
Есть мысли?