繁体   English   中英

Maven:从pom.xml中的settings.xml读取加密密码

[英]Maven: Read encrypted password from settings.xml in pom.xml

我试图在settings.xml中使用加密密码。 我在我的pom.xml中有一个连接到数据库的插件,使用sql-maven-plugin:

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>sql-maven-plugin</artifactId>
  <version>1.4</version>

  <dependencies>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc14</artifactId>
      <version>10.2.0.5.0</version>
    </dependency>
  </dependencies>

  <configuration>
    <driver>oracle.jdbc.driver.OracleDriver</driver>
    <url>jdbc:oracle:thin:@ip.com:1521:SID</url>
    <username>someUser</username>
    <password>{JucQpWS78Q0HW+3ZS/FCCGHQpwbJ8ySl2Io/ILJqf88=}</password>
  </configuration>

  <executions>
    <execution>
      <id>update-configuration</id>
      <phase>package</phase>
      <goals>
        <goal>execute</goal>
      </goals>
      <configuration>
        <autocommit>false</autocommit>
        <srcFiles>
          <srcFile>src/main/sql/update_sim_configuration.sql</srcFile>
        </srcFiles>
      </configuration>
    </execution>

  </executions>
</plugin>

哪个工作正常如果我将密码作为纯文本放在我的pom.xml中,我想从我的settings.xml读取此密码,密码以这种方式加密:

mvn -ep the_password

我在我的settings.xml中

...
<server>
  <id>rms13-db-dev</id>
  <username>user</username>
  <password>{JucQpWS78Q0HW+3ZS/FCCGHQpwbJ8ySl2Io/ILJqf88=}</password>
</server>
...

我想'读'解码'rms13-db-dev'中的'密码',我该如何实现? 或者如果您有替代版本来实现这一目标。

为此,您需要使用Maven工具加密密码 ,然后配置sql-maven-plugin以使用它 插件版本1.4不支持此功能,但1.5版本可以支持。

  1. 使用该命令创建主密码

     mvn --encrypt-master-password 

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

     <settingsSecurity> <master><!-- result of above command --></master> </settingsSecurity> 
  2. 使用命令加密密码

     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> 
  3. 使用settingsKey属性将sql-maven-plugin settingsKey为您的服务器ID,在本例中为my.server 您需要使用插件的1.5版。

     <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>oracle.jdbc.driver.OracleDriver</driver> <url>jdbc:oracle:thin:@ip.com:1521:SID</url> <!-- username and password are not mentioned anymore --> </configuration> </plugin> 

如果任何加密密码包含花括号,则需要通过\\{\\} 来转义它们

  1. pom.xml中 ,删除用户/密码,然后按照MOJO 文档中的说明指定settingsKey
  2. settings.xml中 ,创建一个新的server条目与id等于先前的settingsKey值,如解释在这里
  3. 创建settings-security.xml并以标准方式加密服务器密码。 该文件应在以下路径中创建: ${user.home}/.m2/settings-security.xml请参见下面的示例:
    <settingsSecurity>
        <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
    </settingsSecurity>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM