我们在应用程序中使用Hibernate/JPA,Spring,Spring Data和Spring Security.我有一个User使用JPA映射的标准实体.而且,我有一个UserRepository
public interface UserRepository extends CrudRepository<User, Long> {
List<User> findByUsername(String username);
}
Run Code Online (Sandbox Code Playgroud)
它遵循Spring Data约定来命名查询方法.我有一个实体
@Entity
public class Foo extends AbstractAuditable<User, Long> {
private String name;
}
Run Code Online (Sandbox Code Playgroud)
我想使用Spring Data审计支持.(如此处所述.)因此我创建了AuditorService如下:
@Service
public class AuditorService implements AuditorAware<User> {
private UserRepository userRepository;
@Override
public User getCurrentAuditor() {
String username = SecurityContextHolder.getContext().getAuthentication().getName();
List<User> users = userRepository.findByUsername(username);
if (users.size() > 0) {
return users.get(0);
} else {
throw new IllegalArgumentException();
}
}
@Autowired
public void setUserService(UserService userService) …Run Code Online (Sandbox Code Playgroud)