首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jasypt和Weblogic环境变量

Jasypt和Weblogic环境变量
EN

Stack Overflow用户
提问于 2016-08-24 01:05:12
回答 1查看 1.6K关注 0票数 1

我正在使用jasypt 1.9.2对我的spring REST服务的属性文件中的密码进行加密。我已经通过名为APP_ENCRYTPION_PASSWORD的服务器启动参数文本框向Weblogic添加了一个环境变量,但是该环境变量不会被jasypt读取。下面是错误:

代码语言:javascript
复制
ERROR o.s.web.servlet.DispatcherServlet - Context initialization failed
java.lang.NullPointerException: null
    at org .jasypt.encryption.pbe.config.SimplePBEConfig.getPasswordCharArray(SimplePBEConfig.java:434) ~[jasypt-1.9.2.jar:na]

以下是服务器启动时记录的Weblogic环境变量:

代码语言:javascript
复制
JAVA_OPTIONS= -Dother.vars=xxx -DAPP_ENCRYPTION_PASSWORD=password -Dmore.vars=yyy

我跟踪了jasypt代码,似乎jasypt不能解析JAVA_OPTIONS中的环境变量。我知道这适用于其他框架,比如spring,因为我们在JAVA_OPTIONS中有其他环境变量,spring没有读取问题。

我可以将环境变量添加到weblogic的启动脚本(我认为是setEnv.sh)中,但这将为所有托管节点添加变量,而不是为我的应用程序部署到的集群添加变量。

有没有不同的方式在spring中配置jasypt来获取JAVA_OPTIONS中的环境变量?

下面是我的spring配置:

代码语言:javascript
复制
<bean
    class="org.jasypt.spring31.properties.EncryptablePropertyPlaceholderConfigurer">
    <constructor-arg>
        <bean class="org.jasypt.encryption.pbe.StandardPBEStringEncryptor">
            <property name="config">
                <bean class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
                    <property name="algorithm" value="PBEWithMD5AndTripleDES" />
                    <property name="passwordEnvName" value="APP_ENCRYPTION_PASSWORD" />
                </bean>
            </property>
        </bean>
    </constructor-arg>
    <property name="location">
        <value>application.properties
        </value>
    </property>
</bean>

我的application.properties文件内容:

代码语言:javascript
复制
username=someuser
password=ENC(encryptedstring)

更新的清晰度:通过setEnv.sh或Eclipse将环境变量添加到weblogic中就可以了。只有当我使用weblogic控制台为集群添加环境变量时,jasypt才无法解析该值,因为它在JAVA_OPTIONS中。

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 20:47:33

您可以使用passwordSysPropertyName而不是passwordEnvName。这样你就可以使用-DpasswordSysPropertyName="mysecret“

代码语言:javascript
复制
<bean id="environmentVariablesConfiguration"
    class="org.jasypt.encryption.pbe.config.EnvironmentStringPBEConfig">
    <property name="algorithm" value="PBEWithMD5AndDES" />
    <property name="passwordSysPropertyName" value="APP_ENCRYPTION_PASSWORD" />
</bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39107004

复制
相关文章

相似问题

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