如何在JAVA的HTTP帖子中传递当前的Windows用户凭据?

时间:2019-06-07 17:17:36

标签: java authentication credentials apache-commons-httpclient

我有一个Java程序,需要在需要验证的URL上发布帖子。我不想指定硬编码的用户名和密码,我只想使用运行Java程序的用户的凭据。

我经历了不同的HTTPClient类,并下载了Waffle。我只是找不到正确的组合来提取当前Windows用户凭据并将其传递给发布请求。

此代码有效:

NTCredentials creds = new NTCredentials("user", "pass", "host", "domain");
HttpCLient client = new HttpClient;
HttpClient.getState().setCredentials(AuthScope.ANY, creds);

发布帖子时,我收到200条回复。我该怎么做,但是我没有传递硬编码值来构建NTCredentials,而是传递了运行Java程序的用户的凭据?

我尝试过华夫饼干:

WindowsSecurityContextImpl context = new WindowSecurityContextImpl;
System.out.println(context.getPrincipalName());

我可以检索Windows用户名。但是我找不到将实际凭据传递给HttpClient的方法。

谢谢。

1 个答案:

答案 0 :(得分:0)

密码无法检索。充其量只能获取您已经做过的用户名。 对于您的情况,在需要API身份验证的情况下,API应该有一个具有旋转密码的API用户,该密码可以用于访问服务。 如果访问需要用户特定的凭据,则在系统进一步执行工作流之前,必须提示再次由登录用户提供密码。