Передайте пароль хранилища ключей на сервере углерода при запуске ciphertool.sh -Настроить НЕ при появлении запроса - PullRequest
0 голосов
/ 11 января 2019

Я пытаюсь запустить команду ciphertool.sh -Dconfigure для шифрования паролей на моем сервере идентификации WSO2.

Я прошел обычный процесс выполнения команды, затем при появлении запроса ввел пароль хранилища ключей. Пример:

>./ciphertool.sh -Dconfigure

BUILD SUCCESSFUL
Total time: 20 seconds
Using CARBON_HOME:   C:\Program Files\WSO2\Identity Server\5.7.0
Using JAVA_HOME:    C:\Program Files\Java\jdk1.8.0_181
[Please Enter Primary KeyStore Password of Carbon Server : ]

Я хочу сделать процесс более автоматизированным и включить пароль хранилища ключей для Carbon Server при выполнении команды ciphertool.sh -Dconfigure, НЕ при отображении запроса.

Я знаю, что вы можете использовать файл password-tmp при расшифровке паролей, как описано здесь: https://docs.wso2.com/display/Carbon440/Resolving+Encrypted+Passwords

Это позволяет пропустить этап, на котором запрашивается пароль. Можем ли мы сделать что-то подобное при шифровании паролей?

Вещи, которые я пробовал:

  1. Команда "да": yes PASSWORD| $WSO2IS_HOME/bin/ciphertool.sh -Dconfigure
  2. Использование "echo": echo PASSWORD | $WSO2IS_HOME/bin/ciphertool.sh -Dconfigure
  3. Перенаправление из файла: $WSO2IS_HOME/bin/ciphertool.sh -Dconfigure < PASSWORD.txt

Каждый раз, когда я запускаю эту команду, сценарий ciphertool, похоже, не находит пароль, который я пытаюсь передать. Ошибка выглядит следующим образом:

Exception in thread "main" org.wso2.ciphertool.exception.CipherToolException: String cannot be null
        at org.wso2.ciphertool.utils.Utils.getValueFromConsole(Utils.java:54)
        at org.wso2.ciphertool.utils.KeyStoreUtil.initializeCipher(KeyStoreUtil.java:48)
        at org.wso2.ciphertool.CipherTool.main(CipherTool.java:53)

1 Ответ

0 голосов
/ 11 января 2019

Оказывается, WSO2 IS поддерживает это. Хотя я нигде не смог найти это документально.

Метод initialize() в CipherTool.java (https://github.com/wso2/cipher-tool/blob/master/components/ciphertool/src/main/java/org/wso2/ciphertool/CipherTool.java) имеет этот код

private static void initialize(String[] args) {
    String property;
    for (String arg : args) {
        if (arg.equals("-help")) {
            printHelp();
            System.exit(0);
        } else if (arg.substring(0, 2).equals("-D")) {
            property = arg.substring(2);
            if (property.equals(Constants.CONFIGURE)) {
                System.setProperty(property, Constants.TRUE);
            } else if (property.equals(Constants.CHANGE)) {
                System.setProperty(property, Constants.TRUE);
            } else if (property.length() >= 8 && property.substring(0, 8).equals(Constants.CONSOLE_PASSWORD_PARAM)) {
                System.setProperty(Constants.KEYSTORE_PASSWORD, property.substring(9));
            } else {
                System.out.println("This option is not define!");
                System.exit(-1);
            }
        }
    }
    Utils.setSystemProperties();
}

Constants.CONSOLE_PASSWORD_PARAM - это "пароль".

Таким образом, команда для передачи пароля хранилища ключей будет выглядеть так:

>./ciphertool.sh -Dconfigure -Dpassword=MY_PASSWORD

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...