Hi

Configuring passwords directly in the Camel endpoint uris can be a bit
more tricky if the password contains signs such as + & or other
symbols.

As those symbols would be URI decimal encoded.

So inspired by our camel-jasypt component
http://camel.apache.org/jasypt

Which allows to use an ENC(secret stuff here) syntax to encrypt some
content in the uris, eg also for passwords etc.

We now have a new RAW(value) syntax as well for endpoint URI options.

So if you have the password
se+re?t&23

Then you can tell Camel to use the value as is as shown below:
.to("ftp:j...@myftpserver.com?password=RAW(se+re?t&23)&binary=true"

You can see more details here:
https://cwiki.apache.org/confluence/display/CAMEL/How+do+I+configure+endpoints


I wanted to use the same syntax as we already use, eg for
camel-jasypt, and hence went for RAW(value).
And I didn't want to introduce a syntax that was to similar to
property placeholders, using some kind of [[ ]] tokens.  And hence
settled for RAW(value).

All the tests passes with this change.
And there is also a new ftp unit test where we use a password that
would fail in earlier Camel releases.

And it should be possible to backport the change to Camel 2.10 branch,
if the community thinks its a good idea. Which it could be as this is
already a problem for people today to set their passwords in Camel
2.10, eg as reported here:
https://issues.apache.org/jira/browse/CAMEL-6176

For now the commit is on trunk for the upcoming Camel 2.11 release.



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
FuseSource is now part of Red Hat
Email: cib...@redhat.com
Web: http://fusesource.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen

Reply via email to