Java 在NTLM失败时提供基本身份验证

Java 在NTLM失败时提供基本身份验证,java,tomcat,authentication,servlet-filters,ntlm,Java,Tomcat,Authentication,Servlet Filters,Ntlm,我的应用程序使用jcifs实现了NTLMv1 SSO。 我使用的是JCFI附带的NtlmHttpFilter 对于网络安全:Lan Manager身份验证级别设置正确的客户机,一切正常。这意味着他们发送LM和NTLM响应,但是当用户的级别为拒绝LM和NTLM(仅发送NTLMv2)时,响应将失败,这是预期的 我的问题是如何配置应用程序,以便它为未设置LAN Manager身份验证级别(默认情况下未定义)或拒绝发送NTLMv1响应的用户请求基本身份验证。 我尝试将jcifs.http.enableB

我的应用程序使用jcifs实现了NTLMv1 SSO。 我使用的是JCFI附带的NtlmHttpFilter

对于网络安全:Lan Manager身份验证级别设置正确的客户机,一切正常。这意味着他们发送LM和NTLM响应,但是当用户的级别为拒绝LM和NTLM(仅发送NTLMv2)时,响应将失败,这是预期的

我的问题是如何配置应用程序,以便它为未设置LAN Manager身份验证级别(默认情况下未定义)或拒绝发送NTLMv1响应的用户请求基本身份验证。 我尝试将jcifs.http.enableBasic和jcifs.http.unsecurebasic属性设置为true,但仍然得到以下结果:

Apache Tomcat/7.0.37-错误报告HTTP状态500-参数不正确。键入异常报告

消息参数不正确。

说明服务器遇到内部错误,无法满足此请求。

异常jcifs.smb.SmbException:参数不正确。 jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563) jcifs.smb.SmbTransport.send(SmbTransport.java:663) jcifs.smb.SmbSession.sessionSetup(SmbSession.java:316) 发送(SmbSession.java:218) jcifs.smb.SmbTree.treeConnect(SmbTree.java:176) jcifs.smb.SmbSession.logon(SmbSession.java:147) jcifs.smb.SmbSession.logon(SmbSession.java:140) 协商(NtlmHttpFilter.java:189) jcifs.http.NtlmHttpFilter.doFilter(NtlmHttpFilter.java:121)


我必须自己实现基本身份验证吗?

您好,我也遇到了同样的错误,请告诉我您是否能够找到解决方法。您好!我放弃并更改了SSO实现,因为NTLMv1不安全且过时。感谢您的回复,您是否仍在使用jcifs或您已切换到jespa,正如医生所说,嘿。我用华夫饼干,因为它是免费的,而且是一种一次性的解决方案。 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)