Spring shell 2.0 как читать входные данные с помощью маски

Есть ли способ скрыть пользовательский ввод в Spring Shell 2.0.x?

Мне нужно собрать пароль от пользователя.. не нашел ни одного API оболочки для этого.

Спасибо!!

2 ответа

Обнаружено, что LineReader#readLine(msg,mask) предоставляет такую ​​возможность.

Все, что вам нужно сделать, это внедрить компонент LineReader.

Если вы не хотите полагаться на сторонние библиотеки, вы всегда можете сделать стандартный ввод с консоли Java, например:

private String inputPassword() {
  Console console = System.console();
  return new String(console.readPassword());
}

Обратите внимание, что при запуске в IDE System.console() может иметь значение null. Таким образом, вы, вероятно, должны решить, что если вы хотите поддерживать в среде IDE (например, для тестирования..) что-то вроде:

private String inputPassword() {
    Console console = System.console();
    // Console can be null when running in an IDE
    if (console == null) {
        System.out.println("WARNING - CAN'T HIDE PASSWORD");
        return new Scanner(System.in).next();
    }

    return new String(console.readPassword());
}
Другие вопросы по тегам