верблюд, избегающий специальных символов из файла свойств - PullRequest
0 голосов
/ 10 октября 2019

У меня есть пароль в файле свойств

com.password=$&m

Он вставляется в маршрут верблюда sftp с {{com.password}}, и я получаю "Unknown parameters=[{m=}]"

&интерпретируется неправильно. Я перепробовал несколько вещей и ничего не могу найти в документации. Что мне сделать, чтобы он использовал пароль дословно?

РЕДАКТИРОВАТЬ:

<cm:property-placeholder id="blueprint.placeholder" persistent-id="com.props" >
</cm:property-placeholder>

МАРШРУТ:

<camel:route id="uploadqueue">  
    <camel:from uri="file://{{com.dir}}/?antInclude=*.xml&amp;delay=10000&amp;move=processed/${file:name}&amp;moveFailed=error/${file:name}" />
    <camel:to uri="log:input?showAll=true&amp;level=INFO"/>
    <camel:to uri="sftp://192.168.0.1/?username={{com.user}}&amp;password={{com.password}}" />
</camel:route>

РЕДАКТИРОВАТЬ: Маршрут сейчас:

 <camel:to uri="sftp://192.168.0.1/?username={{com.user}}&amp;password=RAW({{com.password}})" />

Stacktrace. Немного отредактировано для конфиденциальности, но в основном это. Пароль $ & m интерпретируется как HTML (% 24) для $, как пароль, & как семантический амперсанд, так и m как новый параметр. то есть RAW () ничего не сделал.

Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: sftp://192.168.0.1/?password=%24&m=&username=USERNAME due to: There are 1 parameters that couldn't be set on the endpoint. Check the uri if the parameters are spelt correctly and that they are properties of the endpoint. Unknown parameters=[{m=}]
    at org.apache.camel.impl.DefaultComponent.validateParameters(DefaultComponent.java:215) ~[?:?]
    at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:139) ~[?:?]
    at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:711) ~[?:?]
    at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:80) ~[?:?]
    at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:219) ~[?:?]
    at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:115) ~[?:?]
    at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:121) ~[?:?]
    at org.apache.camel.model.SendDefinition.resolveEndpoint(SendDefinition.java:62) ~[?:?]
    at org.apache.camel.model.SendDefinition.createProcessor(SendDefinition.java:56) ~[?:?]
    at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:562) ~[?:?]
    at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:523) ~[?:?]
    at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:239) ~[?:?]
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1300) ~[?:?]
    ... 26 more

1 Ответ

1 голос
/ 10 октября 2019

Согласно документации это должно работать.

<camel:to uri="sftp://192.168.0.1/?username={{com.user}}&amp;password=RAW({{com.password}})"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...