springboot 同时使用WebMvcConfigurer和WebSecurityConfigurerAdapter ,addResourceHandlers方法失效原因
时间: 2024-03-30 19:30:09 浏览: 85
在Spring Boot中同时使用WebMvcConfigurer和WebSecurityConfigurerAdapter时,可能会导致addResourceHandlers方法失效的原因是WebSecurityConfigurerAdapter的优先级高于WebMvcConfigurer。
WebSecurityConfigurerAdapter是用于配置Spring Security的适配器类,它会覆盖默认的Spring Security配置。而WebMvcConfigurer是用于配置Spring MVC的接口,其中的addResourceHandlers方法用于配置静态资源的访问路径。
当同时使用这两个配置类时,WebSecurityConfigurerAdapter会优先生效,它会覆盖WebMvcConfigurer中的配置,导致addResourceHandlers方法失效。
为了解决这个问题,可以通过重写WebSecurityConfigurerAdapter的configure方法,将静态资源的访问路径添加到Spring Security的忽略列表中,让Spring Security不拦截这些静态资源。
下面是一个示例代码:
```java
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/static/**");
}
// 其他配置...
}
```
在上述代码中,我们通过重写configure方法,将静态资源的访问路径"/static/**"添加到Spring Security的忽略列表中,这样Spring Security就不会拦截这些静态资源了。
阅读全文