用于基本身份验证的VMWare vRealize Operations REST API java密码提示

时间:2016-03-15 19:11:38

标签: java vmware

使用我正在使用VMWare的代码创建了一个与其Rest API一起使用的对象工厂。其中一个是clientconfig类,它允许我连接到Rest API服务。

我正在尝试提示用户输入密码而不是将其存储在我的Java客户端中。我怀疑我必须删除basicauth对象并替换它,但我希望可能有一种更简单的方法。

这是我的代码:

public static void main(String[] args) {

    try {
        Client client = ClientConfig
            .builder()
            .serverUrl("https://vrops-ip-address/suite-api")
            .basicAuth("admin", "password")
            .verify("false")
            .useJson()
            .build()
            .newClient();

        // retrieve list of all adapter instances
        AdapterInstancesInfoDto adapterInstances = client.adapterInstancesClient().list();

        // get actual set of adapters

        Set<AdapterInstanceInfoDto> adapters = adapterInstances.getAdapterInstancesInfoDto();

        // iterate the set
        for (AdapterInstanceInfoDto adapter : adapters) {
            // print to console
            System.out.println(ReflectionToStringBuilder.reflectionToString(adapter, ToStringStyle.MULTI_LINE_STYLE));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

和basicauth对象如下:

public Builder basicAuth(String username, String password) {
}

构建器类是只读的,因此我无法更改basicauth。任何参考或建议在这里都会有所帮助。

1 个答案:

答案 0 :(得分:0)

在创建连接之前只需要输入密码。

System.err.print("Username: ");
String user = System.console().readLine();
System.err.print("Password: ");
String password = System.console().readPassword();
try {
        Client client = ClientConfig
            .builder()
            .serverUrl("https://vrops-ip-address/suite-api")
            .basicAuth(username, password)
            .verify("false")
            .useJson()
            .build()
            .newClient();
.
.
.