我是 spring 的新手,我正在尝试创建自己的用户并对其进行身份验证。到目前为止一切正常,我可以登录和注销,但我无法在身份验证成功/失败处理程序中自动连接我的用户存储库。我可以在其他任何地方执行此操作,例如在控制器中。
我的处理程序看起来像这样:
@Service
public class MyAuthenticationSuccessHandler extends
SavedRequestAwareAuthenticationSuccessHandler {
@Autowired
UserRepository userRepository;
@Override
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication authentication)
throws ServletException, IOException {
[...]
User user = (User)authentication.getPrincipal();
user.setLastLogin(now);
userRepository.save(user);
[...]
}
}
当我试图保存用户时,我得到一个空指针异常,因为 userrepository 为空。
用户存储库如下所示:
@Repository
public interface UserRepository extends CrudRepository<User, Long> {
Optional<User> findByName(String name);
}
但是,我可以像在 sucesshandler 中尝试的那样在其他任何地方自动装配它。例如在控制器中。
有人能告诉我我做错了什么吗?
肥皂起泡泡
炎炎设计
相关分类