2016-06-30 16 views
0

私はApache Camel 2.13.2を使用しており、ユーザー名に特殊文字を含むsftpに接続しようとしています。ユーザー名は「XXX \ XX-XXXXXXX」のようなものです。最後のラクダURLは次のように変換され、認証に失敗しています。誰かがこのような特殊文字を扱う方法について、ユーザー名にいくつか光を当てることができますか?ユーザー名のラクダsftp特殊文字

Endpoint[sftp://XXX%[email protected]:22//folder_Test/?binary=true&consumer.bridgeErrorHandler=true&delay=15000&idempotent=true&idempotentKey=%24%7Bfile%3Aname%7D-%24%7Bfile%3Asize%7D-%24%7Bfile%3Amodified%7D&include=.*Test.*&maxMessagesPerPoll=30&password=xxxxxx&pollStrategy=%23FTPPollingConsumerPollStrategy&readLock=changed&sendEmptyMessageWhenIdle=true&stepwise=false&throwExceptionOnConnectFailed=true] 

以下は、ログに表示されていることを除きます。 SFTP作業のため

org.apache.camel.component.file.GenericFileOperationFailedException: Cannot connect to sftp://XXX\[email protected]:22 
    at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:143) 
    at org.apache.camel.component.file.remote.RemoteFileConsumer.connectIfNecessary(RemoteFileConsumer.java:154) 
    at org.apache.camel.component.file.remote.RemoteFileConsumer.recoverableConnectIfNecessary(RemoteFileConsumer.java:145) 
    at org.apache.camel.component.file.remote.RemoteFileConsumer.prePollCheck(RemoteFileConsumer.java:55) 
    at org.apache.camel.component.file.GenericFileConsumer.poll(GenericFileConsumer.java:106) 
    at org.apache.camel.impl.ScheduledPollConsumer.doRun(ScheduledPollConsumer.java:187) 
    at org.apache.camel.impl.ScheduledPollConsumer.run(ScheduledPollConsumer.java:114) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
    at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source) 
    at java.util.concurrent.FutureTask.runAndReset(Unknown Source) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(Unknown Source) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(Unknown Source) 
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: com.jcraft.jsch.JSchException: Auth fail 
    at com.jcraft.jsch.Session.connect(Session.java:512) 
    at org.apache.camel.component.file.remote.SftpOperations.connect(SftpOperations.java:115) 
    ... 15 more 

同じ資格情報FilezillaのまたはApache FTPユーティリティを使用しています。

答えて

1

エンドポイントを設定する方法、特にパスワードについては、http://camel.apache.org/how-do-i-configure-endpoints.htmlのRAW構文を使用する必要があるドキュメントを参照してください。 RAW構文を使用して、uriの先頭ではなくuriパラメータとしてユーザー名/パスワードを指定できます。

+0

ユーザー名にRAWを使用しようとしましたが、同じ認証エラーが表示されませんでした。私が試すことができる他のアイデア? – Ravi

+0

RAWをパラメータとして使用すると、sftp:// host:port?username = RAW(XXXX)を使用する場合は、username @ sftp:// host:portを使用する代わりに動作します。しかし、文字「\」はまだRAWを使っている間でさえまだ問題ですが、それは認証しません。これまでCamelを好んでいましたが、このシナリオでは、ファイルの接続、ダウンロード、アップロードを行う別の方法を見つける必要がありました。 – Ravi