У меня есть загрузочное приложение Spring, и я новичок с пользовательской аннотацией. Я хочу ввести пользовательскую аннотацию, аналогичную аннотации @EncryptedField для java sdk на диване. Если я применяю эту аннотацию к полю в классе модели, то это поле должно быть зашифровано при сохранении в БД и расшифровано при извлечении обратно. Я не понимаю, какой подход выбрать? Должен ли я использовать Spring AOP для этого? Любые входные данные для реализации этого будут действительно полезны
Пользовательская аннотация в поле модели для шифрования и дешифрования при сохранении в БД при весенней загрузке
comment
Как вы получаете доступ к бд? Спящий режим? JDBC?
- person Stav Shamir   schedule 29.04.2020
comment
Я использую spring-data-couchbase
- person vijayashankard   schedule 30.04.2020
Ответы (1)
Это зависит от того, какую структуру постоянства вы используете.
Для Mybatis вы можете добавить интерцептор
как это
<plugins>
<plugin interceptor="com.XXX.XXXX.service.encryptinfo.MyInterceptor" />
</plugins>
Затем реализуйте это
@Intercepts({
@Signature(type=Executor.class,method="update",args={MappedStatement.class,Object.class}),
@Signature(type=Executor.class,method="query",args={MappedStatement.class,Object.class,RowBounds.class,ResultHandler.class})
})
public class MyInterceptor implements Interceptor{
// your logic here
// write something that use reflection capture your custom annotaion of the entity and field
}
person
AwesomeHunter
schedule
29.04.2020