能够使用java.io.File访问文件,但不能使用jcifs.smb.SmbFile

时间:2017-09-19 06:32:29

标签: java file io ntlm smb

我有一个共享资源\ machineName \ dir \ file.txt,它与每个人共享。我可以使用java.io.File访问此文件,但jcifs.smb.SmbFile导致异常:

jcifs.smb.SmbAuthException: Logon failure: account currently disabled

原因是SMB使用NTLMSSP_AUTH中的GUEST用户,但身份验证失败。

我提供身份验证信息时可以访问该文件,如:

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("", "userName", "Password");
SmbFile smbfile = new SmbFile("//machineName/dir/file.txt", auth);

我的问题是我可以使用SmbFile访问每个拥有读取权限的文件而不提供身份验证吗?

SmbFile smbfile = new SmbFile("//machineName/dir/file.txt")

1 个答案:

答案 0 :(得分:0)

要通过SMB连接服务器,您需要进行身份验证(用户,匿名或访客) 连接阶段有3个步骤: 1.协商 - 连接到服务器(新连接)并选择方言。 2.会话设置 - 连接凭据。 3.树连接 - 连接到共享。

  • 不建议访客连接 - 尝试连接匿名! 添加这些步骤与文件访问无直接关系。 如果您对允许所有用户读取的文件具有安全访问权限(ACL),则应该可以访问该文件。