You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Security多角色登录异常:普通用户登录请求404排查

Spring MVC普通用户登录404问题排查方案

1. 核对请求映射配置

  • 检查处理普通用户登录的@Controller类,确认是否存在**精确匹配/user_login**的请求映射方法,示例:
    @PostMapping("/user_login")
    public String handleUserLogin(User user, HttpSession session) {
        // 数据库校验逻辑
        return "user/index";
    }
    
  • 对比管理员登录的/loginAdmin映射,确保路径拼写、请求方法(POST/GET)完全一致,Spring MVC默认路径大小写敏感。

2. 检查前端表单提交路径

  • 验证普通用户登录表单的action属性是否正确,需包含项目上下文路径(若存在):
    <form action="${pageContext.request.contextPath}/user_login" method="post">
        <!-- 账号、密码输入框 -->
        <button type="submit">登录</button>
    </form>
    
  • 避免将action误写为/loginUser或遗漏上下文路径,导致请求路径无效。

3. 排查DispatcherServlet与拦截器配置

  • 确认web.xml中DispatcherServlet的映射范围是否覆盖/user_login,推荐配置为/(需做好静态资源放行):
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    
  • 检查自定义拦截器/过滤器是否拦截了/user_login请求,需确保登录请求能直接通过:
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        String requestUri = request.getRequestURI();
        // 放行登录请求
        if (requestUri.contains("/user_login")) {
            return true;
        }
        // 其他拦截逻辑
        return false;
    }
    

4. 分析日志定位具体问题

  • 查看Tomcat访问日志,确认404请求的完整路径(如"POST /your-project/user_login HTTP/1.1" 404),核对项目上下文路径是否匹配。
  • 检查Spring MVC日志,确认是否存在控制器方法未执行、视图解析异常等报错信息。

5. 验证视图解析器与页面路径

  • 确认视图解析器的前缀、后缀配置正确,保证返回的user/index能映射到实际JSP文件:
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
    
  • 检查/WEB-INF/views/user/index.jsp文件是否存在,路径、文件名(含大小写)是否完全匹配。

内容的提问来源于stack exchange,提问作者Mahesh Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:10:33