java - HttpURLConnection 中的 NTLM 身份验证在 JRE 中不起作用,但在 JDK 环境中起作用

标签 java ntlm waffle

我正在使用 Eclipse 开发一个应用程序的两个部分。

Web 部件提供 REST 服务,并使用 waffle.servlet.NegotiateSecurityFilter 过滤对服务的请求,后者提取 Windows 登录信息以识别用户。

客户端部分使用 HttpURLConnection 向 Web 部分发送请求。据我了解,Ntlm 信息会自动打包到请求中。

当我在 eclipse 中测试它时,它运行良好。当我部署客户端 JAR 时,它不起作用。我收到 401 未验证。

经过一些调查后,我发现我可以通过将执行环境设置为 JRE 而不是默认的 JDK 来在 eclipe 中重现这一点。

我安装了 JRE“1.8.0_201”和 JDK“1.8.0_161”。

因此,只需将执行环境从 JRE 更改为 JDK,我就可以获得连接以进行身份​​验证。

JDK 有什么不同之处,我可以做些什么来让客户端使用 JRE?

最佳答案

我觉得How to provide ntlm authentication while calling any url?的第一个回答可以回答这个问题。 对于 Java 8u201,有一个新的 JRE 选项 jdk.http.ntlm.transparentAuth 默认设置为禁用

关于java - HttpURLConnection 中的 NTLM 身份验证在 JRE 中不起作用,但在 JDK 环境中起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54555127/

相关文章:

java - 网络驱动程序 URL 中的通配符

java - 获取当前回调计数?

使用 NTLM 的 Windows 身份验证的 nginx 反向代理

java - Apache Axis2 1.5.1 和 NTLM 身份验证

eclipse - java.lang.ClassNotFoundException : waffle. apache.NegotiateAuthenticator 异常

java - Spring 中的华夫饼自定义错误页面

java - 为什么我的 Android 倒计时器这么慢?

java - 在 MacOS 上,我可以在 Java 应用程序的 Info.plist 文件中添加默认设置吗

java - 使用 NTLM 对 Sharepoint 使用 HttpClient 身份验证机制时出现 HTTP 403 Forbidden

在 Linux 上使用 Tomcat 进行 Waffle 身份验证