有什么方法可以屏蔽 Spring Shell 2.0.x 中的用户输入?
我需要从用户那里收集密码.. 没有找到任何 shell api 来做到这一点。
谢谢!!
发现 LineReader#readLine(msg,mask) 提供了该选项。
您所要做的就是注入 LineReader bean。
如果你不想依赖第三方库,你总是可以做一个标准的 Java 控制台输入,比如:
private String inputPassword() {
Console console = System.console();
return new String(console.readPassword());
}
但请注意,在 IDE 中运行它时, System.console() 可能为空。因此,如果在 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());
}