aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Paolo Antinori (JIRA)" <j...@apache.org>
Subject [jira] [Closed] (ARIES-1655) Placeholders in XML - issue with enc: , cm: and ConfigAdmin updates
Date Fri, 20 Jan 2017 14:10:26 GMT

     [ 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)

Mime
View raw message