0

有什么方法可以屏蔽 Spring Shell 2.0.x 中的用户输入?

我需要从用户那里收集密码.. 没有找到任何 shell api 来做到这一点。

谢谢!!

4

2 回答 2

1

发现 LineReader#readLine(msg,mask) 提供了该选项。

您所要做的就是注入 LineReader bean。

于 2018-06-01T19:07:11.307 回答
0

如果你不想依赖第三方库,你总是可以做一个标准的 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());
}
于 2018-09-12T08:55:24.507 回答