|
| 1 | +package spring.oldboy.config; |
| 2 | + |
| 3 | +/* |
| 4 | +Lesson 58 - Создаем конфигурацию для нашего аудита |
| 5 | +Lesson 59 - Аннотируем нашу сущность занимающуюся аудитом как @EnableEnversRepositories |
| 6 | +*/ |
| 7 | + |
| 8 | +import org.springframework.context.annotation.Bean; |
| 9 | +import org.springframework.context.annotation.Configuration; |
| 10 | +import org.springframework.data.domain.AuditorAware; |
| 11 | +import org.springframework.data.envers.repository.config.EnableEnversRepositories; |
| 12 | +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; |
| 13 | +import spring.oldboy.SpringAppRunner; |
| 14 | + |
| 15 | +import java.util.Optional; |
| 16 | + |
| 17 | +@EnableJpaAuditing |
| 18 | +/* |
| 19 | +Подключаем механизм Hibernate Envers, а так же получаем доступ параметрам таблиц |
| 20 | +аудируемых сущностей. В параметрах передадим наш базовый пакет: spring.oldboy. |
| 21 | +В противном случае сканированию подвергнется только: spring/oldboy/config/condition. |
| 22 | +См. DOC/DataEnvers/EnableEnversRepositories.txt |
| 23 | +*/ |
| 24 | +@EnableEnversRepositories(basePackageClasses = SpringAppRunner.class) |
| 25 | +@Configuration |
| 26 | +public class AuditConfiguration { |
| 27 | + |
| 28 | + /* |
| 29 | + Для того чтобы передать данные в наши аудирующие поля |
| 30 | + нам нужен провайдер, в нашем случае передающий String, |
| 31 | + хотя туда могут улететь и ID и Email и т.д. |
| 32 | + */ |
| 33 | + @Bean |
| 34 | + public AuditorAware<String> auditorAware() { |
| 35 | + /* |
| 36 | + В реальных приложениях мы в поля определяющие того, кто создал |
| 37 | + сущность или изменил ее, обычно, передаем данные из службы |
| 38 | + безопасности - SecurityContext.getCurrentUser().getEmail() или |
| 39 | + SecurityContext.getCurrentUser().getId(), но в нашем случае мы |
| 40 | + пока тренируемся и просто передаем объект String. |
| 41 | +
|
| 42 | + AuditorAware функциональный интерфейс, передадим хардкодный текст. |
| 43 | + */ |
| 44 | + return () -> Optional.of("spring/oldboy"); |
| 45 | + } |
| 46 | +} |
0 commit comments