如何使用 Basic、Digest 和 NTLM/WindowsIdentity 获得 HTTP 响应?
How do I get an http response using Basic, Digest, & NTLM/WindowsIdentity?
对此有很多答案(one, two, three),但它们都使用过时的方法。对于 Java 1.7 及更高版本,当需要为 Basic、Digest、NTLM、and/or Windows Identity 提供凭据时,通过 http 请求资源的最佳方式是什么?
使用 Apache 库就可以了。
我知道这是一个重复问题,但现有答案似乎都使用过时的调用。
更新: 这是我们拥有的库,用户可以向我们传递任何 URL 并说它是任何不同的身份验证系统。这个库被我们的用户添加到不同的应用程序中。因此,它可以是在任何应用程序中使用的任何服务。它可以是网络,也可以是 REST。它可以在 Apache、WebLogic、WebSphere 或其他任何目录下。
Wwhat are you trying to achieve - 没有一种灵丹妙药适用于所有身份验证方法。最好的选择是使用完善的 HTTP 客户端框架(例如 http-client) with rich authentication options。还有其他几个,但我认为 apache HttpCompnents 是最可靠的框架之一(而且仍然免费)。
Apache HTTP 公共客户端应该开箱即用,可以与任何仅客户端身份验证(基本、摘要、NTLM(不是我最喜欢的))一起使用。大多数情况下,您为它将起作用的 HTTP 上下文实现一个 "CredentialProvider"(密码回调 class)。对于 Windows 身份(我假设您指的是 Kerberos / SPNEGO 身份验证),您将需要更多配置(密钥表文件、jaas 配置,..)。
通常你应该坚持一些大家都支持的通用标准,并尝试让其他人使用它(TLS/SSL 上的基本身份验证应该没问题)。
您可能仍然会遇到 - 使用不同的环境(WebSphere、WebLogic、其他应用程序),其他应用程序可能会强制您使用不同版本的 HTTP 客户端库或版本,并且您的配置不适用于所有方法。因此,除非您不打算实现自己的 http 客户端(简单的基本和摘要身份验证),否则您将不得不强制客户端使用特定版本的特定框架。
对此有很多答案(one, two, three),但它们都使用过时的方法。对于 Java 1.7 及更高版本,当需要为 Basic、Digest、NTLM、and/or Windows Identity 提供凭据时,通过 http 请求资源的最佳方式是什么?
使用 Apache 库就可以了。
我知道这是一个重复问题,但现有答案似乎都使用过时的调用。
更新: 这是我们拥有的库,用户可以向我们传递任何 URL 并说它是任何不同的身份验证系统。这个库被我们的用户添加到不同的应用程序中。因此,它可以是在任何应用程序中使用的任何服务。它可以是网络,也可以是 REST。它可以在 Apache、WebLogic、WebSphere 或其他任何目录下。
Wwhat are you trying to achieve - 没有一种灵丹妙药适用于所有身份验证方法。最好的选择是使用完善的 HTTP 客户端框架(例如 http-client) with rich authentication options。还有其他几个,但我认为 apache HttpCompnents 是最可靠的框架之一(而且仍然免费)。
Apache HTTP 公共客户端应该开箱即用,可以与任何仅客户端身份验证(基本、摘要、NTLM(不是我最喜欢的))一起使用。大多数情况下,您为它将起作用的 HTTP 上下文实现一个 "CredentialProvider"(密码回调 class)。对于 Windows 身份(我假设您指的是 Kerberos / SPNEGO 身份验证),您将需要更多配置(密钥表文件、jaas 配置,..)。
通常你应该坚持一些大家都支持的通用标准,并尝试让其他人使用它(TLS/SSL 上的基本身份验证应该没问题)。
您可能仍然会遇到 - 使用不同的环境(WebSphere、WebLogic、其他应用程序),其他应用程序可能会强制您使用不同版本的 HTTP 客户端库或版本,并且您的配置不适用于所有方法。因此,除非您不打算实现自己的 http 客户端(简单的基本和摘要身份验证),否则您将不得不强制客户端使用特定版本的特定框架。