问题描述
我想使用 CodeLibs 中的 jcifs.smb,因为它支持 SMB2 协议。我曾经使用 https://www.jcifs.org/ 但它只支持 SMB1。 我在以下情况下收到错误“jcifs.smb.SmbAuthException:访问被拒绝”:
import jcifs.smb.NtlmPasswordAuthenticator;
import jcifs.smb.SmbFile;
try {
Properties p = new Properties();
p.putAll(System.getProperties());
NtlmPasswordAuthenticator auth = new NtlmPasswordAuthenticator("","xxx","xxx");
CIFSContext cifsContext = new BaseContext(new PropertyConfiguration(p));
cifsContext.withCredentials(auth);
SmbFile file = new SmbFile(fileUrl,cifsContext);
file.createNewFile();
} catch (Exception e) {
e.printstacktrace();
}
当我为 SMB1 使用相同的库时,它曾经可以工作。
import jcifs.smb1.smb1.NtlmPasswordAuthentication;
import jcifs.smb1.smb1.SmbFile;
try {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("","xxx");
SmbFile file = new SmbFile(fileUrl,auth);
file.createNewFile();
} catch (Exception e) {
e.printstacktrace();
}
p.setProperty("jcifs.smb.client.username","xxx");
p.setProperty("jcifs.smb.client.password","xxx");
p.setProperty("jcifs.smb.client.domain","");
p.setProperty("jcifs.smb.client.minVersion","SMB1");
p.setProperty("jcifs.smb.client.maxVersion","SMB311");
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)