用jcifs连netapp的nas报用户名密码错的解决办法

使用jcifs库连接NetApp NAS时遇到SmbAuthException,提示用户名或密码错误。原因是jcifs发送的密码哈希值与NetApp不兼容。通过将jcifs.smb.lmCompatibility属性设置为2,从NTLMv1改为LMv2或NTLM,问题得到解决。参考NetApp社区,级别2提供了更好的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


netapp设置没问题,在windows里访问也没问题

用代码smbfile来连接就一直报

jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.

最后终于查到jcifs发的不是密码而是密码的某个哈希值

修改方法是

jcifs.Config.setProperty( "jcifs.smb.lmCompatibility", "2");

默认是3,netapp不支持

参考文章  https://communities.netapp.com/thread/24257


又查了一下这个配置

This client can perform NTLM and LMv2 authentication. The default behavior is to use NTLM version 1. This can be changed by using this property with an integer that specifies the "level" of security:

  • 0,1 -- Sends LM and NTLM responses. This is the default behavior.
  • 2 -- Sends only the NTLM response. This is more secure than Levels 0 and 1, because it eliminates the cryptographically-weak LM response.
  • 3,4,5 -- Sends only the LMv2 response. This offers a higher level of security.

问题应该是NetApp用的是NTLM协议,而后改成0,1试了一下果然也没问题,最后还是改成更安全的2了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值