我正在使用 Java 进行 NTLM 实现。我正在尝试访问我自己机器内的共享文件夹。但我得到以下异常:
jcifs.smb.SmbAuthException: Logon failure: unknown user name or bad password.
我从计算机属性中获得了机器名称和工作组信息。这是我的代码:
String folderUrl =settings.domain+";"+settings.username+":"+settings.password
NtlmPasswordAuthentication authentication = new NtlmPasswordAuthentication("${folderUrl}") ;
SmbFile readFolder = new SmbFile("smb:"+settings.filesLocation+"/",authentication) ;
在这一行中,我得到了上述异常:
SmbFile[] listOfFiles = readFolder.listFiles() ;
到目前为止尝试的解决方案:
我在本地安全策略中进行了更改,并将“网络安全:LAN 管理器身份验证级别”的值更改为“发送 NLM 和 NTLM,如果协商则使用会话安全”,但都是徒劳的。此外,我还尝试更改密码和域。
笔记:
- 我创建了共享文件夹,这些在“网络”中显示为共享
- 我无法通过同一网络上的其他机器访问我的机器,不知道为什么,可能是这个原因。看看当我尝试从同一网络上的其他机器访问我的机器时遇到的错误,我使用相同的凭据进入我的电脑:
请指导我如何使我的应用程序使用 NTLM 访问网络路径上的这些共享文件夹?