Java RESTful客户端[RESTEasy或Apache HttpClient] - 另一方面的NTLM

时间:2014-01-21 10:53:33

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

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

GET http://some_server/restapi/books

这完全适用于Web浏览器甚至java.net.URL库 - 用户不会收到提示输入凭据,没有401身份验证错误 - 只返回200 OK

如何使用Apache HttpClient或RESTEasy客户端执行相同操作?

1 个答案:

答案 0 :(得分:0)

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

  1. 当用户首次输入用户名和密码时,您可以检查用户 活动目录上的详细信息,如果成功,则创建一个access_token 使用用户名和密码。它可能是sha-256加密(参考here创建sha-256)
  2. 将access_token保存到您的数据库并为其过期。
  3. 创建access_token成功后,将该访问令牌响应 用户。
  4. 从现在开始,您可以将access_token用于服务请求
  5. 您需要在客户端保存访问令牌,如本地存储。就像你在使用一样 http客户端,你可以在头文件中给出access_token。