是否可以使用JLine完全屏蔽密码?

时间:2014-11-29 07:20:21

标签: masking jline spring-shell

我正在使用Spring Shell作为CLI,我想从输入行读取密码。 为了这个目的,spring shell有jline,所以使用jline的官方文档[1]它建议如下:

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

2 个答案:

答案 0 :(得分:0)

当您使用spring-shell标记问题时,有一个开放的issue用于支持屏蔽(密码)选项。

答案 1 :(得分:0)

对于它的价值,我们在Spring XD中直接实现了这个功能(绕过JLine):(见UserInput.prompt()https://github.com/spring-projects/spring-xd/blob/master/spring-xd-shell/src/main/java/org/springframework/xd/shell/command/ConsoleUserInput.java