Skip to content

Commit 7fa61d5

Browse files
committed
Part 12: Add AuditConfiguration.java
1 parent 1f1ba59 commit 7fa61d5

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
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

Comments
 (0)