我有一个 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 的方法。
谢谢。
最佳答案
无法找回密码。最多只能获取用户名,您已经这样做了。 对于您的情况,如果需要 API 身份验证,API 应该有一个具有可用于访问服务的轮换密码的 API 用户。 如果访问需要用户特定的凭据,则在系统进一步执行工作流程之前,必须提示登录用户(再次)提供密码
关于java - 如何在 JAVA 中的 HTTP post 中传递当前的 Windows 用户凭据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56498731/