По соображениям безопасности я должен зашифровать некоторые столбцы моих таблиц postgres.
Я использовал аннотацию @ColumnTransfomer, но мне нужно управлять тремя разными паролями (dev, test, prod).
С помощью Spring я настроил bean-компонент со ссылкой на правильный hibernate.cfg.xml, поэтому, когда мне нужно развернуть, мне нужно только изменить ссылку на 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')")