SecurityContextHolder.getContext().getAuthentication()返回null

Raj*_*hwa 12 java security spring spring-security

我想使用以下代码从spring Security手动绕过用户:

User localeUser = new User();
UsernamePasswordAuthenticationToken auth = new UsernamePasswordAuthenticationToken(localeUser ,null, localeUser .getAuthorities());
SecurityContext securityContext = SecurityContextHolder.getContext();
        securityContext.setAuthentication(auth);
        // Create a new session and add the security context.
        HttpSession session = request.getSession(true);
        session.setAttribute("SPRING_SECURITY_CONTEXT", securityContext);
return "dummyLogin";
Run Code Online (Sandbox Code Playgroud)

虚拟登录页面(由磁贴处理)在内部调用同一控制器中的不同请求映射,我试图获得这样的身份验证.

SecurityContextHolder.getContext().getAuthentication()
Run Code Online (Sandbox Code Playgroud)

我在哪里无效!

请帮忙!

Raj*_*hwa 9

所以我发现了实际的问题!问题是我在security-context.xml中用security ="none"标记了整个控制器.因此,当它从第一个链接弹回到第二个链接时,它会通过任何安全上下文!对不起,麻烦的家伙们.