2017-10-31 3 views
0

私はWildFly群れの私のWARにデータソースを追加するには、以下の設定を使用しています:WildFly Swarmで暗号化されたパスワードを持つデータソースを追加する方法.warパッケージを使用していますか?

swarm: 
    datasources: 
     data-sources: 
     MyDS: 
      driver-name: oracle 
      connection-url: <my-connection-string> 
      user-name: <my-user-name> 
      password: <my-password-in-clear-text> 

パスワードはクリアテキストで暗号化されないように、これを変更することができますか?ここで

答えて

0

はSecureIdentityLoginModuleとOracle12のための私の作業例です:次のコマンドで

swarm: 
    datasources: 
    data-sources: 
     <your-datasoure-name>: 
     driver-name: oracle 
     connection-url: jdbc:oracle:thin:@<your-oracle-ip>:<your-oracle-port>:<your-oracle-sid> 
     security-domain: myEncryptedDs 
    security: 
    security-domains: 
     myEncryptedDs: 
     classic-authentication: 
      login-modules: 
      myLoginModule: 
       code: org.picketbox.datasource.security.SecureIdentityLoginModule 
       flag: required 
       module-options: 
       username: <your-oracle-username> 
       password: <your-encrypted-oracle-password> 

あなたは(2つのJAR-ライブラリが作成したwildfly-群れ戦争-ファイルで見つけることができます)パスワードを暗号化することができます:

java -cp <your-path-to-wildfly-jars>\picketbox-4.9.6.Final.jar;<your-path-to-wildfly-jars>\logging-2017.11.0.jar:$CLASSPATH org.picketbox.datasource.security.SecureIdentityLoginModule <your-password> 
0

org.wildfly.swarm.spi.api.ConfigurationFilterを実装する必要があります。 ファイルのプロパティごとにクラスが呼び出されます。同時に値を変更することができます。あなたの価値を解読する方法の例をここに示します。値を解読するには、キー(jvmスタートアップ)を指定する必要があります。

public class DecryptPropertyFilter implements ConfigurationFilter { 

private EncryptionHelper encryptionHelper; 

{ 
    try { 
     encryptionHelper = new EncryptionHelper(System.getProperty("encryption.key")); 
    } catch (NoSuchAlgorithmException e) { 
     throw new RuntimeException(e); 
    } 
} 

@Override 
@SuppressWarnings("unchecked") 
public <T> T filter(String key, T value) { 
    if (value instanceof String) { 
     String str = value.toString(); 
     if (str.startsWith("ENC(") && str.endsWith(")")) { 
      try { 
       value = (T) encryptionHelper.decrypt(str.substring(4, str.length() - 1)); 
      } catch (Exception e) { 
       throw new RuntimeException(e); 
      } 
     } 
    } 
    return value; 
} 

} 
関連する問題