这似乎可以由文档直接回答:
如果您使用@CreatedBy或@LastModifiedBy,则审计基础结构需要以某种方式了解当前主体。为此,我们提供了AuditorAware
SPI接口,您必须实现该接口以告知基础结构与应用程序交互的当前用户或系统是谁。通用类型T定义必须使用@CreatedBy或@LastModifiedBy注释的属性的类型。以下示例显示了使用Spring Security的Authentication对象的接口的实现:
例子104.基于Spring Security的AuditorAware的实现
class SpringSecurityAuditorAware implements AuditorAware<User> { public Optional<User> getCurrentAuditor() { return Optional.ofNullable(SecurityContextHolder.getContext()) .map(SecurityContext::getAuthentication) .filter(Authentication::isAuthenticated) .map(Authentication::getPrincipal) .map(User.class::cast); }}该实现访问Spring
Security提供的Authentication对象,并查找您在UserDetailsService实现中创建的自定义UserDetails实例。我们在这里假设您通过UserDetails实现公开域用户,但是根据找到的身份验证,您还可以从任何地方查找它。



