Vous devez utiliser pgp_sym_encrypt
pour l'écriture et pgp_sym_decrypt
pour lire. Vous avez fait le contraire.
@ColumnTransformer(
read = "pgp_sym_decrypt(" +
" test, " +
" current_setting('encrypt.key')" +
")",
write = "pgp_sym_encrypt( " +
" ?, " +
" current_setting('encrypt.key')" +
") "
)
@Column(columnDefinition = "bytea")
private String test;
Étant donné que coder en dur la clé de chiffrement dans le mappage ne semble pas être une très bonne idée, nous utiliserons à la place la prise en charge de PostgreSQL pour les paramètres définis par l'utilisateur.
Ainsi, le encrypt.key
est stocké dans postgresql.conf
fichier de configuration :
encrypt.key = 'Wow! So much security.'
Le l'exemple est sur GitHub et fonctionne comme un charme.