【问题标题】:Maven - use encrypted password for oracle OSB and SOA deploymentMaven - 使用加密密码进行 oracle OSB 和 SOA 部署
【发布时间】:2021-10-31 13:46:46
【问题描述】:

我们用于 osb 服务的 pom.xml 引用 maven settings.xml 来获取服务器详细信息和部署凭据。 pom.xml 有以下条目:

<plugins>
    <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>
        <oracleUsername>${oracleUsername}</oracleUsername>
        <oraclePassword>${oraclePassword}</oraclePassword>
    </configuration>
    </plugin>
</plugins>

settings.xml 有以下条目:

<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>
    <oracleUsername>weblogic_buildserver</oracleUsername>
    <oraclePassword>{WhEa5AhivzUHwQHIv7oQHsbBjcA3e5jKuMpjTzPTbkZevhD9UUjr34NEY5ROPgEI} 
    </oraclePassword>
  </properties>
</profile>

如果我们将 settings.xml 中的密码保存为明文,则部署工作正常。 但是如果我们对其进行加密,它会在部署时无法进行用户身份验证。

我们按照本指南进行 Maven 密码加密 - https://maven.apache.org/guides/mini/guide-encryption.html#introduction

【问题讨论】:

  • “失败”是什么意思?
  • 我们得到以下错误:java.lang.SecurityException:用户无法通过身份验证。在 weblogic.common.internal.RMIBootServiceImpl.authenticate(RMIBootServiceImpl.java:121) 在 weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:645) 在 weblogic.common.internal.RMIBootServiceImpl_WLSkel.invoke(Unknown Source) 在 weblogic .rmi.internal.BasicServerRef$2.run(BasicServerRef.java:534) 在 weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedS
  • 此密码必须使用 WebLogic 工具和存储在您的域中的 salt 进行加密。最简单的方法是从 $DOMAIN_HOME/servers/AdminServer/security 下的 boot.properties 文件中获取加密密码

标签: maven soa servicebus osb


【解决方案1】:

你可以试试这个,你需要用这个link加密一个密码,然后配置oracle-servicebus-plugin来使用它。

  1. 使用以下命令创建主密码:

    mvn --encrypt-master-password
    

Maven 将提示您从 3.2.1 开始输入密码。完成后,创建一个名为 ~/.m2/settings-security.xml有内容

<settingsSecurity>
  <master><!-- result of above command --></master>
</settingsSecurity>
  1. 用命令加密你的密码

    mvn --encrypt-password
    

和之前一样,Maven 会提示你输入密码。然后在你的 Maven 设置中(~/.m2/settings.xml,如果文件不存在则创建),添加以下内容

<settings>
...
  <servers>
  ...
    <server>
      <id>my.server</id>
      <username><!-- your DB username --></username>
      <password><!-- the encrypted password --></password>
    </server>
  ...
  </servers>
...
</settings>
  1. 将您的 oracle-servicebus-plugin 配置为您的服务器 ID 的 settingsKey 属性,在本例中为 my.server。
<plugin>
  <groupId> org.codehaus.mojo </groupId>
  <artifactId>sql-maven-plugin</artifactId>   
  <version>1.5</version> <!-- 1.5 required -->
  <configuration>
    <settingsKey>my.server</settingsKey> <!-- id of server here -->
    <driver>----</driver>
    <url>----</url>
    <!-- username and password are not mentioned anymore -->
  </configuration>
</plugin>

如果任何加密密码包含花括号,您需要使用\{\} 将它们转义。

【讨论】:

  • 嗨 Raj,我们已经完成了类似的步骤,但是在部署过程中,当它创建与服务器的连接时,它会因用户身份验证错误而失败。 osb 插件似乎不知道(不支持)如何解密加密密码。
猜你喜欢
  • 2018-12-10
  • 1970-01-01
  • 1970-01-01
  • 2016-04-10
  • 1970-01-01
  • 2011-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多