在 SpringBoot 中的 SpringSecurity 的配置类中,http.permitAll() 与 web.ignoring() 的区别?
虽然这两个都是继承 WebSecurityConfigurerAdapter 后重写的方法,但是 http.permitAll 不会绕开 springsecurity 的过滤器验证,相当于只是允许该路径通过过滤器,而 web.ignoring 是直接绕开 spring security 的所有 filter,直接跳过验证。
permitAll 配置实例
web ignore 配置实例
二者区别
顾名思义,WebSecurity 主要是配置跟 web 资源相关的,比如 css、js、images 等等,但是这个还不是本质的区别,关键的区别如下:
- ignore 是完全绕过了 spring security 的所有 filter,相当于不走 spring security,所以 ignore 只适合配置静态资源的过滤,不适合 api 的过滤,过滤 api 就调用不了 api 了
- permitall 没有绕过 spring security,其中包含了登录的以及匿名的。