好吧,终于有机会在客户环境中使用WireShark。
首先,我注意到他们已经配置了NTLM v2,但这没关系,因为Java 1.6支持它。
然后我看到,由于启用了Windows集成身份验证,因此将发送当前记录的用户凭据,而不是代码中配置的凭据。由于登录的用户对SharePoint没有权限,因此我收到401未经授权。
根据Java文档,这是正常现象
实际上,如果您以域用户身份在Windows机器上运行,或者您已经在Linux或Solaris机器上运行,该机器已经发出了kinit命令并获得了凭据缓存。MyAuthenticator类将被完全忽略......,表明未查询用户名和密码。这就是所谓的单点登录。
最后,我观察到使用HTTP首先将尝试Windows凭据,并且在失败时将使用代码提供的凭据。因此,一切正常。
使用HTTPS时,将仅使用Windows凭据,因此我总是获得401 Unauthorized。
不知道是什么原因导致HTTP和HTTPS之间的差异。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)