2

Spring 4 で以下の 2 xml 構成を Java Config に変換する方法

1) ジャシプト

<encryption:encryptor-config id="eConf" password-env-name="APP_ENCRYPTION_PASSWORD" algorithm="PBEWithMD5AndDES" />

<encryption:string-encryptor id="stringEnc" config-bean="eConf" />

暗号化の最初の部分 ( encryption:encryptor-config) は、次のように変換できます。

@Bean
public EnvironmentStringPBEConfig environmentVariablesConfiguration() {

    EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
    config.setAlgorithm("PBEWithMD5AndDES");
    config.setPasswordEnvName("APP_ENCRYPTION_PASSWORD");
}

ただし、暗号化の変換方法:string-encryptor の部分。

2) プロフィール

    <beans profile="dev">
        <util:properties id="myProps" location="classpath:dev.properties" />
    </beans>

    <beans profile="prod">
        <util:properties id="myProps" location="classpath:prod.properties" />
    </beans>

@PropertySource("classpath:prod.properties")に使用されutil:propertiesますが、PropertySource アノテーションでプロファイルを言及するにはどうすればよいですか?

4

1 に答える 1

7

jasypt ライブラリ ( EncryptionNamespaceHandlerおよびEncryptorFactoryBean ) のソース コードとPooledPBEStringEncryptorの API から判断すると、次のような実験を開始できると思います。

@Bean
public EnvironmentStringPBEConfig environmentVariablesConfiguration() {
   EnvironmentStringPBEConfig config = new EnvironmentStringPBEConfig();
   config.setAlgorithm("PBEWithMD5AndDES");
   config.setPasswordEnvName("APP_ENCRYPTION_PASSWORD");
   return config;
}
@Bean
public PooledPBEStringEncryptor stringEncryptor() {
   PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor();
   encryptor.setConfig(environmentVariablesConfiguration());
   return encryptor;
}

ただし、1 つ注意してください。Jasypt については何も知りませんが、それらのパッケージ名とドキュメントを参照してください。すべてが spring 2、3、および 3.1 に関するものです。Spring 4 については何もありません。ですから、うまくいかないとは言いませんが、うまくいくように見えてもうまくいかない場合に備えて、心に留めておくべきことです。

これら@PropertySourceの行の周りに何かが必要だと思います:

@Configuration
@Profile(value="prod")
@PropertySource("classpath:prod.properties")
public class ProdPlaceholderConfig {
...
}

@Configuration
@Profile(value="dev")
@PropertySource("classpath:dev.properties")
public class DevPlaceholderConfig {
...
}
于 2014-04-23T06:38:26.400 に答える