JAVA SAML JKSKeyManager - PullRequest
       8

JAVA SAML JKSKeyManager

0 голосов
/ 06 декабря 2018

Я надеюсь, что кто-то может мне помочь.Я пытаюсь создать пример приложения для проверки подключения к ADFS

Мне удалось запустить пример кода SAML с помощью SSOCircle.

Не пытаюсь использовать его с другим сервером ADFS. Iбыл выдан файл сертификата ADFS.cer и metadata.xml

Я использовал следующую команду

keytool -import -alias myalias -file ADFS.cer -keystore myfile.jks -storepass mypass -noprompt

@Bean
public KeyManager keyManager() {
    DefaultResourceLoader loader = new DefaultResourceLoader();
    Resource storeFile = loader
            .getResource("classpath:/saml/myfile.jks);
    String storePass = "mypass";
    Map<String, String> passwords = new HashMap<String, String>();
    passwords.put("apollo", "mypass");
    String defaultKey = "apollo";
    return new JKSKeyManager(storeFile, storePass, passwords, defaultKey);
}

Файл строится и когда я запускаю файл инажмите на ссылку http://localhost:8080/

java.lang.RuntimeException: ключ для псевдонима apollo не найден

Я читал несколько форумов и где-то читал Аутентифицированным сертификатам пароль не нужен

Я не уверен, что я должен поставить вместо defaultKey ("apollo")

С уважением

1 Ответ

0 голосов
/ 10 декабря 2018

Продолжая работать над этим, я нашел это.Следуя следующим шагам, я смог разрешить исключения, связанные с хранилищем ключей

создает пару ключей

keytool -genkeypair -alias mykey -keypass mypass  -keystore myJKSFile.jks

Вы можете использовать следующую команду для вывода списка

keytool -v -list -keystore myJKSFile.jks

Добавить / импортировать сертификат в файл хранилища ключей

keytool -importcert -alias differentAlias -file ADFS-CertFile.cer -keystore myJKSFile.jks

В коде (конфигурация Spring) используйте следующую команду:

@Bean
public KeyManager keyManager() {
    DefaultResourceLoader loader = new DefaultResourceLoader();
    Resource storeFile = loader
            .getResource("classpath:/saml/myJKSFile.jks");
    String storePass = " mypass";
    Map<String, String> passwords = new HashMap<String, String>();
    passwords.put("mykey", " mypass");
    String defaultKey = "mykey";
   return new JKSKeyManager(storeFile, storePass, passwords, defaultKey);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...