You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SpringBoot WAR包部署WebLogic时Jasypt密钥配置及安全存储问题

在WebLogic中配置SpringBoot WAR包的Jasypt加密密钥方案

一、配置Jasypt密钥的三种方法

1. 修改WebLogic启动脚本

找到WebLogic域的启动脚本(Linux为startWebLogic.sh,Windows为startWebLogic.cmd),在JAVA_OPTIONS配置行末尾添加JVM参数:

-Djasypt.encryptor.password=masterpassword

集群环境下需给所有节点的启动脚本添加该参数,之后重启WebLogic服务。

2. 通过WebLogic控制台配置

  1. 登录WebLogic控制台,依次进入域结构 → 环境 → 服务器
  2. 选择目标服务器,切换到配置 → 服务器启动标签页
  3. 在参数输入框中添加:
    -Djasypt.encryptor.password=masterpassword
    
  4. 保存配置后重启对应服务器。

3. 自定义weblogic.xml配置

在项目的src/main/webapp/WEB-INF目录下创建或修改weblogic.xml,添加如下配置(仅对当前应用生效):

<weblogic-web-app>
    <container-descriptor>
        <!-- 保证SpringBoot和Jasypt包优先加载 -->
        <prefer-application-packages>
            <package-name>org.springframework.*</package-name>
            <package-name>com.ulisesbocchio.jasyptspringboot.*</package-name>
        </prefer-application-packages>
        <jvm-parameters>-Djasypt.encryptor.password=masterpassword</jvm-parameters>
    </container-descriptor>
</weblogic-web-app>

重新打包WAR包后部署即可。

二、无Vault时的密钥安全存储方案

1. 用WebLogic加密工具加密密钥

WebLogic自带加密工具,位于$WL_HOME/common/bin目录:

  • Linux执行:
    ./encrypt.sh -domain /path/to/your/domain -user weblogic -password 你的管理员密码 -plaintext masterpassword
    
  • Windows执行:
    encrypt.cmd -domain C:\path\to\your\domain -user weblogic -password 你的管理员密码 -plaintext masterpassword
    

得到加密后的密文后,将启动参数改为:

-Djasypt.encryptor.password={AES}加密后的密文

WebLogic会自动解密该参数。

2. 限制配置文件/控制台权限

  • Linux下给启动脚本设置严格权限:chmod 600 startWebLogic.sh,仅管理员可读
  • 仅授权必要人员访问WebLogic控制台,避免密钥参数被未授权查看

3. 利用环境变量间接引用

  1. 在WebLogic控制台进入域结构 → 环境 → 服务器 → 配置 → 服务器启动
  2. 在环境变量中添加变量JASYPT_PASSWORD,值为加密后的密文
  3. 修改启动参数为:
    -Djasypt.encryptor.password=${JASYPT_PASSWORD}
    

这样密钥不会直接暴露在启动参数中,降低泄露风险。

内容的提问来源于stack exchange,提问作者Chiranjit Jasu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 03:52:49