CodeLibs jcifs.smb.SmbAuthException:访问被拒绝

问题描述

我想使用 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 (将#修改为@)