我已经在我的Grails应用程序中安装了Spring Security插件,看到登录工作正常,但是当我想为用户创建注册并在注册后对用户进行身份验证时,手动在代码中,我不能。
有没有解决方法?怎么可能是Spring Security不允许简单地使用经过身份验证的用户推送到会话或Spring Security Context。 这是我试过的:
UsernamePasswordAuthenticationToken uat = new UsernamePasswordAuthenticationToken(user.email, user.password, null);
uat.setDetails(user);
SecurityContext context = SecurityContextHolder.getContext();
context.setAuthentication(uat);
这会对用户进行身份验证,但我无法使用下一个代码:
springSecurityService.currentUser
只有这个:
SecurityContextHolder.getContext().getAuthentication().getPrincipal();
我现在很困惑,使用Spring Security的正确方法是什么。
我现在开始构建自己的UserDetailsService,但是如果我想创建自己的身份验证方法,我感到困惑并且不知道接下来的步骤是什么?
答案 0 :(得分:2)
您可以使用以下方式强制进行身份验证:
springSecurityService.reauthenticate user.username