【问题标题】:Java RESTful client [RESTEasy or Apache HttpClient] - NTLM on the other sideJava RESTful 客户端 [RESTEasy 或 Apache HttpClient] - 另一端的 NTLM
【发布时间】:2014-02-10 22:09:41
【问题描述】:

如何调用需要在 Active Directory 中进行 NTLM 身份验证的 RESTful Web 服务(来自 Java - 使用 RESTEasy/Apache HttpClient),而无需再次输入用户数据(域、用户名、密码) - 用户已经在 Windows 中进行了身份验证?

GET http://some_server/restapi/books

这在 Web 浏览器甚至 java.net.URL 库中都能完美运行 - 不会提示用户输入凭据,也不会出现 401 身份验证错误 - 只需返回 200 OK

如何使用 Apache HttpClient 或 RESTEasy 客户端做同样的事情?

【问题讨论】:

    标签: java single-sign-on httpclient resteasy ntlm


    【解决方案1】:

    你可以用这个结构做到这一点;

    1. 当用户第一次输入用户名和密码时,可以检查用户 有关活动目录的详细信息,如果成功,则通过以下方式创建 access_token 使用用户名和密码。可能是sha-256加密(参考here创建sha-256)
    2. 将该 access_token 保存到您的数据库并为其设置过期时间。
    3. 成功创建 access_token 后,将该访问令牌响应到 用户。
    4. 从现在开始,您可以使用 access_token 进行服务请求

    您需要将访问令牌保存在客户端,例如本地存储。就像你正在使用一样 http客户端,你可以在header中给出access_token。

    【讨论】:

      猜你喜欢
      • 2017-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-27
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多