[
https://issues.apache.org/jira/browse/ARIES-1655?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Paolo Antinori closed ARIES-1655.
---------------------------------
Resolution: Invalid
issue was at Camel level
> Placeholders in XML - issue with enc: , cm: and ConfigAdmin updates
> -------------------------------------------------------------------
>
> Key: ARIES-1655
> URL: https://issues.apache.org/jira/browse/ARIES-1655
> Project: Aries
> Issue Type: Bug
> Components: Blueprint
> Reporter: Paolo Antinori
>
> It seems there is an issue with token replacement when both {{cm:}} and
> {{enc:}} namespaces are involved:
> Full reproducer inline since is short enough:
> {code:xml}
> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
>
> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0"
> xmlns:enc="http://karaf.apache.org/xmlns/jasypt/v1.0.0">
>
> <enc:property-placeholder>
> <enc:encryptor
> class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
> <property name="config">
> <bean
> class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
> <property name="algorithm" value="PBEWithMD5AndDES"/>
> <property name="password" value="ENCRYPTION_PASSWORD"/>
> </bean>
> </property>
> </enc:encryptor>
> </enc:property-placeholder>
> <cm:property-placeholder persistent-id="mytest" update-strategy="reload">
> <cm:default-properties>
> <!-- <cm:property name="mykey" value="5f85Rg1mhRZkAwPiRK3H+w=="/>
> -->
> <!-- <cm:property name="token" value="ENC(${mykey})"/> -->
> <cm:property name="token" value="ENC(5f85Rg1mhRZkAwPiRK3H+w==)"/>
> </cm:default-properties>
> </cm:property-placeholder>
> <camelContext id="blueprintContext" trace="false"
> xmlns="http://camel.apache.org/schema/blueprint">
> <route>
> <from uri="timer:foo?fixedRate=true&period=1000" />
> <setBody><simple>{{token}}</simple>
> </setBody>
> <log message="Outside of Camel Context ${body}" />
> </route>
> </camelContext>
>
> </blueprint>
> {code}
> If the above blueprint file is deployed, it works as expected: camel is able
> to log lines containing the decrypted value of the encoded token.
> But
> if the value is changed at {{ConfigAdmin}} level, in Karaf with this command:
> {code}
> config:propset --pid mytest token 'ENC(5f85Rg1mhRZkAwPiRK3H+w==)'
> {code}
> The token is no longer unencrypted:
> {code}
> 2017-01-09 15:07:24,666 | INFO | #2 - timer://foo | route2
> | 232 - org.apache.camel.camel-core - 2.17.0.redhat-630187 | Outside
> of Camel Context ENC(5f85Rg1mhRZkAwPiRK3H+w==)
> {code}
> I have tried adding indirection, with the lines you can see commented out but
> I have not been able to make it work.
> I have worked around the issue writing an implementation of
> {{org.osgi.service.cm.ConfigurationPlugin}} that gave me the functionality I
> needed but I wonder if this should just work out of the box:
> https://github.com/paoloantinori/fabric8/commit/88159db9957cd85e773c807c63bf737be6dc8d81
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)