Java 如何在异步任务中利用spring数据jpa审计(AuditorAware)?
目前,我的实现使用Spring检索当前Auditor以保存创建/修改用户名:Java 如何在异步任务中利用spring数据jpa审计(AuditorAware)?,java,spring-data,Java,Spring Data,目前,我的实现使用Spring检索当前Auditor以保存创建/修改用户名: @Service public class AuditorAwareImpl implements AuditorAware<UserDetails> { private final UserDetailsService userDetailsService; @Autowired public AuditorAwareImpl(UserDetailsService userDe
@Service
public class AuditorAwareImpl implements AuditorAware<UserDetails> {
private final UserDetailsService userDetailsService;
@Autowired
public AuditorAwareImpl(UserDetailsService userDetailsService){
this.userDetailsService = userDetailsService;
}
@Override
public UserDetails getCurrentAuditor() {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
return userDetailsService.loadUserByUsername(authentication.getName());
}
}
到目前为止,我已经将调用用户的请求作为非标识参数包含到作业中,但不知道从这里开始
当
SecurityContextHolder
不适合查找调用的“auditor”时,推荐使用spring内置审核的方法是什么?您可以使用专门为传播springSecurityContext而设计的。另外,您还需要为安全上下文设置模式\u INHERITABLETHREADLOCAL
。我对这个问题很熟悉,有什么解决方案吗?我是说卡住了,没有东西(错误)看看这里谢谢。因为我使用的是SimpleAsyncTaskExecuter,所以设置MODE_INHERITABLETHREADLOCAL策略对我来说就足够了。
java.lang.NullPointerException: null
at com.example.services.AuditorAwareImpl.getCurrentAuditor(AuditorAwareImpl.java:31)
at com.example.services.AuditorAwareImpl.getCurrentAuditor(AuditorAwareImpl.java:18)