Camel SFTP,带有特殊字符的用户名

时间:2015-11-24 15:23:59

标签: java apache-camel sftp

在Camel(2.15.0)中调用SFTP(docs):

String uri = "sftp://foo.co.uk?username=Me+Admin&privateKeyFile=/my/id_rsa&knownHostsFile=/my/known_hosts&preferredAuthentications=publickey"
producerTemplate.sendBodyAndHeader(uri, fileContents, "CamelFileName", fullFilePath);

SFTP尝试用户Me Admin的结果。显然,+被空格所取代 我尝试对此进行网址编码(Me%2DAdmin),仍然替换为空格(Me Admin) 尝试对其进行两次编码,现在SFTP尝试用户名Me%2DAdmin 任何人都知道如何为用户名为+的用户获取Camel到SFTP?感谢。

2 个答案:

答案 0 :(得分:1)

始终用RAW()标记围住用户名/密码,这总是很好。例如sftp:user @ hostname?password = RAW(password @ 123)

答案 1 :(得分:0)

好的回答我自己的问题,将请求网址从sftp://host?username=user更改为sftp://user@host可以解决问题。用户名仍然需要编码一次:

String uri = "sftp://Me%2DAdmin@foo.co.uk?privateKeyFile=/my/id_rsa&knownHostsFile=/my/known_hosts&preferredAuthentications=publickey"
producerTemplate.sendBodyAndHeader(uri, fileContents, "CamelFileName", fullFilePath);