Spring Security报错:请求的/authenticateTheUser资源不可用如何解决
/authenticateTheUser 资源不存在问题排查解决思路
1 优先修复显性代码错误
1.1 表单提交路径拼写错误
你的JSP登录表单action属性存在两处拼写错误:
<!-- 错误写法 --> <form:form action="${pageContent.request.cotextPath}/authenticateTheUser" method="POST" class="form-horizontal">
pageContent应为pageContextcotextPath应为contextPath
EL表达式属性不存在时默认返回空字符串,会导致提交路径丢失项目上下文前缀,最终404。修复后写法:
<form:form action="${pageContext.request.contextPath}/authenticateTheUser" method="POST" class="form-horizontal">
1.2 登出提示判断逻辑错误
当前两个提示的判断条件都用了${param.error != null},第二个登出成功的提示需要修改判断条件:
<!-- 错误写法 --> <c:if test="${param.error != null}"> <div class="alert alert-success col-xs-offset-1 col-xs-10"> You have been logged out. </div> </c:if> <!-- 正确写法 --> <c:if test="${param.logout != null}"> <div class="alert alert-success col-xs-offset-1 col-xs-10"> You have been logged out. </div> </c:if>
2 次优先级排查配置&部署问题
- 确认
DemoSecurityConfig类被Spring组件扫描到:如果是Spring Boot项目,确认配置类在启动类同级或子包下;如果是传统Spring MVC项目,确认组件扫描的包路径包含该配置类所在包。 - 临时关闭CSRF测试:在
configure(HttpSecurity http)方法中添加.and().csrf().disable(),重启后测试是否能正常提交,排查是否是CSRF拦截导致的异常。 - 确认依赖版本匹配:检查Spring Core和Spring Security的版本对应关系,避免版本冲突导致Spring Security过滤器链初始化失败,登录处理接口未正常注册。
- 清理Eclipse部署缓存:依次执行Maven更新项目、清理服务器缓存、重启服务器操作,避免旧代码未正常发布导致的问题。
内容的提问来源于stack exchange,提问作者Aakash V
相关产品推荐
相关产品推荐

