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

Spring Security配置loginProcessingUrl登录认证时报404错误

问题根因

这个报错和loginProcessingUrl的配置逻辑无关,核心错误出在WebSecurity的忽略规则配置上:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/**", "/static/**", "/static/css/**", "/js/**", "/images/**","/vendor/**","/fonts/**").anyRequest();
}

web.ignoring()的作用是把匹配到的请求完全排除在Spring Security过滤器链之外,你在静态资源匹配规则后面加了.anyRequest(),等于所有请求都不走Security的过滤器处理。
你对loginProcessingUrl的理解是对的:这个路径本来就是Security内置的UsernamePasswordAuthenticationFilter负责拦截处理的,完全不需要手动写Controller映射。现在过滤器链被全局绕开,POST /authenticate的请求直接打到DispatcherServlet找对应的控制器方法,自然会报找不到映射的错。

修复方法

直接删掉web.ignoring()配置末尾多余的.anyRequest(),只保留静态资源的忽略规则即可,改完的配置:

@Override
public void configure(WebSecurity web) throws Exception {
    web.ignoring().antMatchers("/resources/**", "/static/**", "/static/css/**", "/js/**", "/images/**","/vendor/**","/fonts/**");
}

改完重启应用就能正常处理登录请求了。

补充说明

你贴的前端登录表单没有问题:POST提交方法、action路径和loginProcessingUrl配置一致、输入框的name属性用的是Security默认识别的username和password,不需要额外调整。
另外注意你贴的SecurityConfig类里,UserService的导入包写的是com.myProject.tournamentproject.service.UserService,但类本身所在包是com.eyanu.tournamentproject.config,如果这不是你贴代码时的笔误,后续可能会报依赖注入错误,到时候把导入路径改成你实际UserService的包路径就行,这个问题和当前的找不到映射报错无关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 02:09:25