我正在使用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风格,甚至不显示密码,在输入时?
答案 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