我希望获得服务层中的当前用户
我尝试了以下代码但得到空指针异常
@Service
public class MyService{
@Autowired
TodoRepository todoRepository;
public void execute(){
Authentication auth = SecurityContextHolder.getContext().getAuthentication();
Todo todo = new Todo();
todo.setDomain(auth.getName());
todoRepository.save(todo);
}
有谁能告诉我如何通过服务层中的spring security获取登录用户?
答案 0 :(得分:0)
这将帮助您找到当前经过身份验证的用户:
@Override
public Person getCurrentlyAuthenticatedUser() {
Authentication authentication = SecurityContextHolder.getContext()
.getAuthentication();
if (authentication == null) {
return null;
} else {
// The line below calls the method from my Person database,
// where I search users by their Email(username)
return personDAO.findPersonByUsername(authentication.getName());
}
}
希望这会有所帮助。如果没有,请让我知道,我会删除我的答案。