Конфиденциальные данные в Spring одной аннотацией
Недавно поставили задачу: конфиденциальные данные пользователей в БД должны быть зашифрованы алгоритмом AES-256. Поначалу я думал написать логику кодирования перед сохранением в БД и декодирования после считывания. В таком случае для каждого поля приходилось бы написать маппер, а это много кода, поэтому пришлось придумать что-то проще. Что я узнал;
Достаточно добавить полю сущности аннотацию @Convert(converter = MyAttributeConverter.class) и конвертация будет проходить автоматически для чтения и записи в БД. При этом нам достаточно реализовать интерфейс AttributeConverter, в котором прописывается нужное шифрование. Иногда можно погуглить 5 минут, вместо 60-минутной реализации