如何在 blueprint.xml 中输入 encrypt/decrypt 密码?

How to encrypt/decrypt passwords in blueprint.xml?

我想为 RedHat AMQ 设置用户名和密码。 因密码不能为明文,想以加密方式指定。

<bean class="org.apache.activemq.camel.component.ActiveMQComponent" id="activemq">
        <property name="brokerURL" value="${activemq.brokerURL}"/>
        <property name="userName" value="${activemq.userName}"/>
        <property name="password" value="${activemq.password}"/>
    </bean>
activemq.userName=jboss
activemq.password=ENC(kOPUJKK141oluf4XZC91iw==)

您可以通过在 pom.xml 文件中添加 Jasypt 依赖项来实现此目的,例如-

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-jasypt</artifactId>
    <version>x.x.x</version> <!-- use the same version as your Camel core version -->
</dependency>

它对 属性 文件(例如 .CFG 文件)中的值进行编码,并在运行时在项目内部使用时对其进行解码。有关详细信息,请访问 link

我通过添加 property-place holder 使之成为可能,如下所示:
ENC(kOPUJKK141oluf4XZC91iw==)


<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="passwordEnvName" value="JASYPT_ENCRYPTION_PASSWORD"/>
                </bean>
            </property>
        </enc:encryptor>
</enc:property-placeholder>