我正在使用Sping Boot 和Spring Security进行项目。Spring Security使用每个请求的session id验证header。如果会话ID无效或已过期,则将返回错误代码401。会话ID在到达控制器之前进行验证。
现在,我面临一个问题,如果用户输入一个没有有效会话ID的无效URL,响应代码仍然是401,因为会话ID首先被验证。我的预期是,如果URL无效,将返回错误代码404(未找到HTTP请求的Map)。换句话说,我想在验证会话ID之前验证URL。
有没有办法这样做,因为头中的会话id在到达控制器之前在GenericFilterBean中进行了验证?
任何帮助都是感激不尽的。谢谢
3条答案
按热度按时间webghufk1#
您可以尝试在WebSecurityConfigurerAdapter类中配置访问设置。
因此,过滤器不会为任何不匹配“/secure/**”模式的请求返回HTTP 401。
iibxawm42#
将此过滤器作为Spring Security中的第一个过滤器:
oknwwptz3#
稍微修改一下答案。
适用于
springBootVersion: 3