我的应用程序使用jcifs实现了NTLMv1 SSO。 我正在使用NtlmHttpFilter,因为它附带了jcfis。
对于具有Network Security:Lan Manager身份验证级别设置正确的客户端,一切正常。这意味着他们发送LM& NTLM响应,但是当用户具有以下级别时它会失败:拒绝LM& NTLM(仅发送NTLMv2),这是预期的。
我的问题是如何配置应用程序,以便为没有设置LAN Manager身份验证级别的用户请求BASIC身份验证(默认情况下未定义)或拒绝发送NTLMv1响应。 我试图将jcifs.http.enableBasic和jcifs.http.insecureBasic属性设置为true,但我仍然得到以下内容:
Apache Tomcat / 7.0.37 - 错误报告
类型异常报告
< p> 消息参数不正确。描述服务器遇到内部错误,无法完成此请求。
例外
jcifs.smb.SmbException: The parameter is incorrect. jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563) jcifs.smb.SmbTransport.send(SmbTransport.java:663) jcifs.smb.SmbSession.sessionSetup(SmbSession.java:316) jcifs.smb.SmbSession.send(SmbSession.java:218) jcifs.smb.SmbTree.treeConnect(SmbTree.java:176) jcifs.smb.SmbSession.logon(SmbSession.java:147) jcifs.smb.SmbSession.logon(SmbSession.java:140) jcifs.http.NtlmHttpFilter.negotiate(NtlmHttpFilter.java:189) jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:121)
我是否必须自己实施BASIC身份验证?