Неинициализированное хранилище ключей: даже после загрузки - PullRequest
0 голосов
/ 04 июля 2018

У меня есть 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 не поддерживает.
Есть мысли?

...