我已经在Spring Boot应用程序中创建了一个自定义的404错误页面,我还使用了Spring Security,并且我拥有一个带有多个授权URL的身份验证入口点(该列表中包含错误页面)。
我发现的是,如果输入的URL不存在,那么身份验证入口点将拦截该请求,因为它不是授权的URL,并且最终返回到我的登录页面,而不是自定义404错误页。有什么想法吗?
我在安全配置中拥有的基本示例
http
.csrf().disable()
.authenticationEntryPoint(new LoginUrlAuthenticationEntryPoint("/login"))
.and()
.authorizeRequests().antMatchers("/login", "/error-404")
答案 0 :(得分:1)
当您调用/invalid-url
如果/invalid-url
是安全的(默认)
/invalid-url -> session
)/invalid-url
如果/invalid-url
不安全
因此,基本上,如果需要第二个流程,则需要声明所有不安全的URL,直接转到404页
.mvcMatchers("/login", "/error-404/**", "/invalid-url/**").permitAll()
显然是这样做的:
.anyRequests().permitAll()
由于最后一条语句将解决您的用例,因此也是危险的。然后,您已明确映射出必须保护的所有端点。而且,如果您忘记了一个,该端点将被暴露。