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

Maven部署Oracle OSB与SOA时使用加密密码认证失败问题

问题根因

Oracle官方的oracle-servicebus-plugin:12.2.1-4-0本身不会主动解析Maven自定义属性中的加密密码,你直接把加密后的密码放在profile的<oraclePassword>自定义属性里,插件会将整个加密字符串(包括外层的大括号)直接作为明文密码提交给OSB服务器,自然会认证失败。
另外Maven原生的密码解密机制默认仅对settings.xml中<servers>节点下的<password>字段生效,自定义properties中的加密值不会被自动解密。


解决方案

方案1:使用节点存储凭证(推荐)

这是最符合Maven规范的做法,也能兼容原生加密机制:

  1. 调整settings.xml配置,新增server节点,将加密后的密码放在server节点下,profile中仅保留非敏感配置:
<!-- settings.xml 新增servers节点 -->
<servers>
  <server>
    <id>osb-devb-server</id>
    <username>weblogic_buildserver</username>
    <password>{WhEa5AhivzUHwQHIv7oQHsbBjcA3e5jKuMpjTzPTbkZevhD9UUjr34NEY5ROPgEI}</password>
  </server>
</servers>

<!-- 原有profile调整,移除用户名密码配置 -->
<profile>
  <id>server-devb</id>
  <properties>
    <oracleHome>/oracle/apps/fusion/devb_soa_suite_12_2_1_4_0</oracleHome>
    <oracleServerUrl>http://esb-soa-server1-devb:7001</oracleServerUrl>
    <oracleSoaServerUrl>http://esb-soa-server1-devb:8001</oracleSoaServerUrl>
    <oracleServerT3>t3://esb-soa-server1-devb:7001</oracleServerT3>
    <!-- 新增serverId配置,对应上面servers节点的id -->
    <oracleServerId>osb-devb-server</oracleServerId>
  </properties>
</profile>
  1. 修改pom.xml中插件配置,移除用户名密码的硬编码引用,改用serverId参数:
<plugin>
  <groupId>com.oracle.servicebus.plugin</groupId>
  <artifactId>oracle-servicebus-plugin</artifactId>
  <version>12.2.1-4-0</version>
  <extensions>true</extensions>
  <configuration>
    <oracleHome>${oracleHome}</oracleHome>
    <oracleServerUrl>${oracleServerUrl}</oracleServerUrl>
    <!-- 新增serverId,删除原来的oracleUsername、oraclePassword配置 -->
    <oracleServerId>${oracleServerId}</oracleServerId>
  </configuration>
</plugin>

改完之后Maven会自动解密servers节点下的密码,插件直接获取解密后的明文进行认证,就不会报错了。

方案2:CI/CD环境变量传递

如果是在流水线中部署,可以不在settings.xml里存储密码,直接通过构建参数传递:
构建时执行命令如下即可:

mvn deploy -DoraclePassword=你的明文密码

流水线中可以将密码设为加密的敏感变量,不会在日志中泄露,也能避免本地配置明文的问题。

方案3:手动解密自定义属性

如果必须保留profile中的密码配置,可以提前通过Maven插件解密属性:
在pom中引入cryptor-maven-plugin,在构建初始化阶段解密oraclePassword属性,再传递给OSB插件即可。


注意事项

  • 确认Maven的主密码配置文件settings-security.xml放在正确路径:用户目录下的.m2文件夹内,且文件权限设置为仅当前用户可读,避免主密码泄露。
  • 如果修改配置后仍然报错,可以在构建命令中加-X参数打印debug日志,查看oraclePassword属性的实际取值是否为解密后的明文,排查配置错误。

内容的提问来源于stack exchange,提问作者Vivek Vishal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 03:12:02