[ 
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&amp;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)

Reply via email to