33

我们使用 JCIFS(1.3.15) 从仅发送 NTLM v2 响应的 Windows 7 客户端进行身份验证。

我们在使用 Windows 2008 R2 域控制器时收到以下错误

jcifs.smb.SmbException: The parameter is incorrect.
    at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:545)
    at jcifs.smb.SmbTransport.send(SmbTransport.java:645)
    at jcifs.smb.SmbSession.sessionSetup(SmbSession.java:322)
    at jcifs.smb.SmbSession.send(SmbSession.java:224)
    at jcifs.smb.SmbTree.treeConnect(SmbTree.java:176)
    at jcifs.smb.SmbSession.logon(SmbSession.java:153)
    at jcifs.smb.SmbSession.logon(SmbSession.java:146)

身份验证机制在以下情况下工作正常

1)客户端同时支持NTLM v1和v2(客户端lmCompatibility为1),域控制器为Windows 2003

2)客户端仅发送NTLM v2(客户端的lmCompatibility为3),域控制器为Windows 2003

3)客户端同时支持NTLM v1和v2(客户端lmCompatibility为1),域控制器为Windows 2008

但是当客户端仅发送 NTLM v2(客户端的 lmCompatibility 为 3)且域控制器为 Windows 2008 时,我们会收到上述错误

有人可以在这里帮助我们吗

提前致谢

萨乔·C·马修

4

2 回答 2

1

JCifs 被放弃了。如果您需要 NTLM2,您可以以 250 美元(或 500 美元无限制)迁移到商业解决方案:http: //www.ioplex.com/jespa.html,或免费的从 Liferay 中取出的 NTLM 部件:http://sourceforge。净/项目/ntlmv2auth/

NTLM 正在被放弃(主要是因为安全漏洞)。也许您可以迁移到 Kerberos?

于 2015-10-19T15:48:03.803 回答
0

JCifs 1.3.18 正确支持 NTLMv2(我遇到了同样的问题)。

于 2016-06-23T13:46:20.157 回答