3

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」から「パスワード」を何らかの方法で「読み取り」デコードしたいのですが、どうすればこれを達成できますか? または、これを実現するための代替バージョンがある場合。

4

2 に答える 2

6

これが機能するには、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. サーバー ID (この場合は )sql-maven-pluginの属性を使用して構成します。プラグインのバージョン 1.5 を使用する必要があります。settingsKeymy.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>oracle.jdbc.driver.OracleDriver</driver>
        <url>jdbc:oracle:thin:@ip.com:1521:SID</url>
        <!-- username and password are not mentioned anymore -->
      </configuration>
    </plugin>
    

暗号化されたパスワードに中かっこが含まれている場合は、 and を使用してそれらをエスケープする必要があり\{ます\}

于 2016-03-02T22:03:42.603 に答える
2
  1. pom.xmlで、user/password を削除し、代わりに MOJO ドキュメントで説明されているように aをsettingsKey指定します
  2. settings.xmlで、ここで説明されているように、前の値と等しい新しいserverエントリを作成します。idsettingsKey
  3. settings-security.xmlを作成し、標準的な方法でサーバー パスワードを暗号化します。ファイルは次のパスに作成する必要があります。${user.home}/.m2/settings-security.xml以下の例を参照してください。
    <settingsSecurity>
        <master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
    </settingsSecurity>
于 2016-03-02T22:06:55.267 に答える