3

我正在使用 JCIFS 库,并且我的 samba 文件 URL 为

SmbFile file = new SmbFile("smb://domain;username:P@ssword@abc.com/share/filename.txt")
file.connect

注意密码有一个@. Samba 文件连接未能提供java.net.UnknownHostException. 除了解析 URL 并单独使用 auth 传递NtlmAuthentication,还有其他方法吗...

在格式 URL 中,我尝试放置方括号,但没有帮助。

4

2 回答 2

3

URL 对密码进行如下编码

URLEncoder.encode(password, "UTF-8");

这会将您的密码编码为 -P%40ssword 这称为当前编码。查看此 Wikipedia链接以了解有关当前编码的更多信息。

但这不是一个好的做法。创建一个 NtlmPasswordAuthentication 来设置身份验证详细信息。

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, username, password);
String path ="abc.com/share/filename.txt";
SmbFile file = new SmbFile(path,auth);
于 2017-04-03T16:26:48.570 回答
0

我对密码进行了 UrlEncode 并解决了问题。

于 2017-01-27T17:46:20.990 回答