出于安全原因,我必须对postgres表的某些列进行加密。
我使用了@ColumnTransfomer批注,但是我需要管理三个不同的密码(dev,test,prod)。
在春季,我已经使用正确的hibernate.cfg.xml引用设置了一个bean,因此当我必须部署时,我只需要更改对bean的引用即可连接正确的配置,并且我需要一些东西类似于找回密码
在我的实体中,我具有当前注释
@ColumnTransformer(
read = "pgp_sym_decrypt(field1::bytea, 'MYKEY','cipher-algo=aes256')",
write = "pgp_sym_encrypt(?, 'MYKEY','cipher-algo=aes256')")
有没有办法插入一个任意值而不是MYKEY? 我尝试过这种方式,但是收到错误消息
private final static String key = ((AppConfig)ContextLoader.getCurrentWebApplicationContext().getBean("app")).getDb().getPassword();
...
@ColumnTransformer(
read = "pgp_sym_decrypt(email::bytea, "+key+",'cipher-algo=aes256')",
write = "pgp_sym_encrypt(?, "+key+",'cipher-algo=aes256')")