您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Spring Security“转发:”指令无法转发到登录表单

Spring Security“转发:”指令无法转发到登录表单

我误读了另一条指南,并意识到正确的处理方法如下:

1)在SecurityContextHolder上手动设置身份验证令牌

    UsernamePasswordWithAttributesAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken( loadUserByUsername(username), password, authorities );
    SecurityContextHolder.getContext().setAuthentication(authenticationToken);

2) 不要 在此时渲染页面,或使用forward:指令。您必须使用redirect:指令。

return "redirect:/accountcreated";

如果呈现页面,则页面将正常加载,但是会话对象将丢失,因为将创建新的j_session_id,但不会将其发送到浏览器中级请求,并且下一个请求将使用旧的j_session_id,从而失去了新会话对象和认证。

使用forward:指令将绕过身份验证过滤器,不好。

但是重定向:导致更新的会话信息进入浏览器。

Java 2022/1/1 18:18:38 有476人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶