相关疑难解决方法(0)

如何使用Spring Data JPA和Spring Security实现AuditorAware?

我们在应用程序中使用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)

spring hibernate jpa spring-security spring-data

15
推荐指数
2
解决办法
1万
查看次数

标签 统计

hibernate ×1

jpa ×1

spring ×1

spring-data ×1

spring-security ×1