Можно ли полностью замаскировать пароль с помощью JLine?

Я использую Spring Shell для CLI и хочу прочитать пароль из строки ввода. Для этой цели в Spring Shell есть jline, поэтому, используя официальную документацию [1] jline, он предлагает следующее:

public static void main(String[] args) throws IOException {
    String password = new ConsoleReader().readLine('*');
    System.out.println("My password is: "+password);
}

При запуске приложения это выглядит так:

mysecretpassword   << entered by myself 
****************   << masking from jline
My password is: mysecretpassword  << my output

Итак, мой вопрос: какова цель маскировки пароля, если он все равно отображается, когда я его набираю? Есть ли возможность сделать это в стиле Unix и даже не показывать пароль при его вводе?

[1] http://jline.sourceforge.net/#installation


person Christian Götz    schedule 29.11.2014    source источник


Ответы (2)


Хотя вы пометили свой вопрос с помощью spring-shell, существует открытая проблема для поддержки маскированных (пароль) параметры.

person Cengiz    schedule 29.11.2014
comment
спасибо за информацию, буду следить за темой. - person Christian Götz; 29.11.2014

Что бы это ни стоило, мы реализовали эту функцию напрямую (в обход JLine), как в Spring XD: (см. UserInput.prompt()) https://github.com/spring-projects/spring-xd/blob/master/spring-xd-shell/src/main/java/org/springframework/xd/shell/command/ConsoleUserInput.java

person ebottard    schedule 01.12.2014