Devi usare pgp_sym_encrypt
per scrivere e pgp_sym_decrypt
da leggere. Hai fatto il contrario.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Poiché l'hardcoding della chiave di crittografia nella mappatura non sembra una buona idea, utilizzeremo invece il supporto PostgreSQL per le impostazioni definite dall'utente.
Quindi, encrypt.key
è memorizzato in postgresql.conf
file di configurazione:
encrypt.key = 'Wow! So much security.'
Il l'esempio è su GitHub e funziona come un incantesimo.