首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasypt无法解密密码

Jasypt无法解密密码
EN

Stack Overflow用户
提问于 2018-04-09 23:35:16
回答 1查看 666关注 0票数 0

我正在尝试使用jasypt解密密码,其中密码是作为VM参数传递的。使用它的xml文件看起来像-

代码语言:javascript
复制
<bean id="strongEncryptor"
          class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
        <property name="config">
            <bean class="org.jasypt.encryption.pbe.config.SimpleStringPBEConfig"
                  p:algorithm="PBEWithMD5AndDES" p:password="#{systemProperties['jasypt.encryptor.password']}"
                  p:providerClassName="org.bouncycastle.jce.provider.BouncyCastleProvider"/>
        </property>
    </bean>

    <bean id="propertyConfigurer" p:ignoreResourceNotFound="true" p:nullValue="{null}"
          class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">
        <constructor-arg ref="strongEncryptor" />
        <property name="locations">
            <list>
                <value>file:#{systemProperties['appconfig.dir']}/farms/local-testing/application.properties</value>
            </list>
        </property>
        <property name="ignoreUnresolvablePlaceholders" value="true"></property>
    </bean>

在这里,如果我没有编写<property name="ignoreUnresolvablePlaceholders" value="true">,那么我会得到一些错误,比如没有定义各种属性,但是这些属性是在base\application.properties中定义的。

VM参数以如下形式提供

-Dspring.config.location=appconfig/base/,appconfig/farms/local-testing/ -Dappconfig.dir=/opt/apps/globalpayments/svx/appconfig -Djasypt.encryptor.password=randompassword

不能理解这里发生了什么。

同样重要的是,如果我不提供VM参数,那么它应该忽略这一点,并以字符串而不是解密值的形式提供加密值。

任何提示都会很有帮助。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-06-01 09:45:21

不如像下面这样做。我拆分了环境变量config和encryptor,并删除了一些属性,因为我不了解它们是什么。请注意,您需要将"jasypt_encryptor_password“作为”环境“变量传递,而不是VM参数。

代码语言:javascript
复制
<bean id="envVarConfig"
  class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor" p:algorithm="PBEWithMD5AndDES" p:password="jasypt_encryptor_password" p:providerClassName="org.bouncycastle.jce.provider.BouncyCastleProvider" />

<bean id="configEncryptor" class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor" p:config-ref="envVarConfig" />

<bean id="propertyConfigurer" class="org.jasypt.spring3.properties.EncryptablePropertyPlaceholderConfigurer">
        <constructor-arg ref="configEncryptor" />
        <property name="locations">
            <list>
                <value>file:///${appconfig.dir}/farms/local-testing/application.properties</value>
            </list>
        </property>
</bean>

希望它能为你工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49736666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档