Hi,

I'm receiving the following error trying to use Jasypt and the 
BridgePropertyPlaceholderConfigurer from a XML configuration in a Spring Boot 
application:

***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 1 of method properties in 
org.apache.camel.spring.boot.CamelAutoConfiguration required a single bean, but 
3 were found:
        - jasypt: defined in class path resource [spring/ws-proxy-security.xml]
        - bridgePropertyPlaceholder: defined in class path resource 
[spring/ws-proxy-security.xml]
        - propertiesParser: defined by method 'propertiesParser' in class path 
resource [org/apache/camel/spring/boot/CamelAutoConfiguration.class]

Action:
Consider marking one of the beans as @Primary, updating the consumer to accept 
multiple beans, or using @Qualifier to identify the bean that should be consumed


My Jasypt configuration is as follows:

  <bean id="jasypt" 
class="org.apache.camel.component.jasypt.JasyptPropertiesParser">
    <property name="algorithm" value="PBEWithMD5AndDES" />
    <property name="password" value="password"/>
  </bean>

  <bean id="bridgePropertyPlaceholder" 
class="org.apache.camel.spring.spi.BridgePropertyPlaceholderConfigurer">
    <property name="location" 
value="file:${karaf.home}${sis.configFile:admissions.cfg}"/>
    <property name="parser" ref="jasypt"/>
  </bean>

I'm using:
Camel 2.24 (with with camel-jasypt-starter and camel-spring-boot-starter 
dependencies)
Spring Boot 2.1.5.RELEASE


I know that there was a fix in Fuse Integration Services (FIS) 2.0.  Here's the 
link https://access.redhat.com/solutions/3415021 for that issue.  I was 
wondering if there was a fix or workaround for this issue that supports using 
Camel in Spring Boot without requiring FIS.

Also, Jasypt decryption works if it's configured within Spring Boot, but only 
on the property placeholders within the CamelContext, not the Spring property 
placeholders.  The Spring Boot configuration is simply:

    @Bean(name = "encryptorBean")
    public StringEncryptor createEncryptor() {
        StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();
        encryptor.setAlgorithm("PBEWithMD5AndDES");
        encryptor.setPassword(System.getenv("password"));

        return encryptor;
    }


Thanks for your help.

Reply via email to