JCIFS 是否与 Windows 2008 R2 域控制器不兼容?

我们使用 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(客户端的兼容性为 1),域控制器为 Windows 2003

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

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

但是当客户端仅发送NTLM v2(客户端的lm兼容性为3)并且域控制器是Windows 2008时,我们得到上述错误

一些身体可以帮助我们在这里

提前致谢

萨霍·马修


答案 1

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

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


答案 2

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


推荐