带有@的密码的SmbFile URL路径

时间:2017-01-27 17:03:16

标签: ntlm samba smb jcifs unknown-host

我正在使用JCIFS库,我将samba文件URL作为

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

请注意,密码为@。 Samba文件连接失败,提供java.net.UnknownHostException。除了解析URL并使用NtlmAuthentication单独传递auth之外,还有其他任何方式......

在格式网址中,我尝试使用方括号,但没有帮助。

2 个答案:

答案 0 :(得分:2)

URL编码密码如下

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

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

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

NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(domain, username, password);
String path ="abc.com/share/filename.txt";
SmbFile file = new SmbFile(path,auth);

答案 1 :(得分:0)

我做了密码的UrlEncode,解决了这个问题。