Конфигурация : Весенняя загрузка 2.0.0 ДЖАСИПТ: 2.0.0 Postgres 11 / В настоящее время я использую шифрование БД с помощью ключа, предоставленного из файла констант Я хочу удалить его из исходного кода и прочитать из файла свойств. Я намерен предоставить ключ JASYPT через переменную окружения или командную строку. Я хочу прочитать / предоставить расшифрованный ключ в классе Entity. Любая помощь приветствуется.
parent project: parent
child1 project: jack
child2 project: tim
Parent POM
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot</artifactId>
<version>2.0.0</version>
</dependency>
Child1 POM (jack)
<dependency>
<groupId>com.test.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Child2 POM (tim)
<dependency>
<groupId>com.test.example</groupId>
<artifactId>parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
Child1: application-profile.properties
db.encryption.key=ENC(XcBjfjDDjxeyFBoaEPhG14wEzc6Ja+Xx+hNPrJyQT88=)
jasypt.encryptor.iv-generator-classname=org.jasypt.iv.NoIvGenerator
jasypt.encryptor.algorithm=PBEWithMD5AndDES
jasypt.encryptor.password=supersecretz
Parent > CommonConfig.java
Parent > AppConstants.java
Parent> Entity Class
@Entity
public class DummyEntity {
@Id
@Column(name = "ID")
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@Column(name = "sensitiveInfo")
@ColumnTransformer(forColumn = "sensitiveInfo", read = "pgp_sym_decrypt(sensitiveInfo::bytea, AppConstants.DB_ENCRYPTION_KEY)", write = "pgp_sym_encrypt(?, AppConstants.DB_ENCRYPTION_KEY)")
private String sensitiveInfo;
}
Основной класс
child1 > JackSpringMainApplication.java
Основной класс
child2 > TimSpringMainApplication.java