2

我正在将 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

4

2 回答 2

1

当您使用 spring-shell 标记您的问题时,存在一个支持屏蔽(密码)选项的未解决问题。

于 2014-11-29T16:57:07.307 回答
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

于 2014-12-01T12:06:08.863 回答