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());
}