我想使用以下代码手动绕过 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";
虚拟登录页面(由图块处理)在同一控制器中内部调用不同的请求映射,我试图在其中获取类似这样的身份验证。
SecurityContextHolder.getContext().getAuthentication()
我在哪里变得空?
所以,我发现了真正的问题!
问题是我在 security-context.xml 中用 security="none" 标记了整个控制器。
因此,当它从第一个链接跳到第二个链接时,它没有传递任何安全上下文!
抱歉给大家带来麻烦了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)