JDK版本:jdk17
IDEA版本:IntelliJ IDEA 2022.1.3
文章目录
- 问题描述
- 原因分析
- 解决方案
问题描述
当我使用postman测试接口时,报了 404 Not Found
的错误,报错截图如下所示
但我的后端程序中已经定义了该接口,如下所示
但postman始终无法找到这个接口!!!
原因分析
我百度了很久,一般来说,
404错误基本上是接口路径,提交方式、参数类型、返回结果类型有误所致
。
然而我仔细核对了上述因素,均属正确!!!
这就非常奇怪了? 后来我突发奇想,找不到资源,也许不一定是上面的原因,很有可能存在多个重复的请求路径。
因为我的demo项目中使用了Spring Security框架,Spring Security框架默认使用 /logout
,该请求路径用于处理用户的登出操作。当用户请求/logout时,Spring Security会执行登出流程,这通常包括清除用户的认证信息、重定向到登出成功页面或登出后的URL!!!
源码如下
官方解释如下
Constructor which takes a LogoutSuccessHandler instance to determine the target destination after logging out. The list of LogoutHandlers are intended to perform the actual logout functionality (such as clearing the security context, invalidating the session, etc.).
翻译
构造函数,它在注销后使用LogoutSuccessHandler实例来确定目标目标。LogoutHandlers列表用于执行实际的注销功能(如清除安全上下文、使会话无效等)
解决方案
将自定义的请求路径/logout 重命名即可
重新测试如下
排错成功!!!