通过NTLM从Windows上的Java SE6客户端进行HTTP“协商”身份验证
有没有人知道在
Windows上运行的
Java 6客户端是否能够在访问实现SPNEGO身份验证协议的Microsoft服务器时通过NTLM进行身份验证?
我的理解是,在Windows上运行的Java 6内置了对SPNEGO的支持,但似乎Java实现不会在无法进行kerberos身份验证的情况下尝试NTLM身份验证. Sun文档中提供的Authenticator示例在响应服务器发送WWW-Authenticate:Negotiate时发生401 Unauthorized错误失败. 以下是测试环境的说明: 目标服务器: > Windows 2008 R2独立服务器(不属于AD域) 客户端机器: > Windows 7 64位独立工作站(不属于域) 最终目标是使用Apache CXF 2.4.0在WCF服务器上调用SOAP服务.在添加CXF和SOAP的复杂性之前,我一直在尝试使用简单的Java测试应用程序从服务器检索WSDL来解决身份验证问题. FWIW – 我可以使用Windows服务器的本地管理员登录从IE访问WCF服务器.我还能够创建一个没有任何特殊授权配置的Delphi XE SOAP客户端. Delphi SOAP客户端使用WinInet. 解决方法
Java的SPNEGO只能使用Kerberos,因为NTLM是专有的传统MS技术.如果您的目标计算机不属于域名,就像您的情况一样,那么您运气不好.如果可以,您应该切换到DIGEST-MD5身份验证.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows+tomcat+https(免费证书)
- anaconda 的安装
- 从Windows 10中的bash / linux子系统打开资源管理器
- windows – 如何证明操作系统级防火墙的重要性?
- windows-phone-7 – Caliburn Micro中的墓碑
- 如何使资源DLL描述设备字体?
- 部署 – 如何使用Pharo或Squeak部署一个漂亮的One-Window-A
- hyper-v – Microsoft Emulated IDE Con??troller Error
- 在没有可见控制台窗口的Windows中创建后台进程
- 权限 – Windows Server 2012远程桌面 – 在标准用户之间发