springboot 同时使用WebMvcConfigurer和WebSecurityConfigurerAdapter ,addResourceHandlers方法失效,如何保证都生效
时间: 2024-03-30 10:30:09 浏览: 80
集成电路失效分析的技术和方法
在Spring Boot中同时使用WebMvcConfigurer和WebSecurityConfigurerAdapter时,可能会遇到addResourceHandlers方法失效的问题。为了保证两者都生效,可以按照以下步骤进行操作:
1. 创建一个配置类,实现WebMvcConfigurer接口,并重写addResourceHandlers方法。在该方法中,添加资源处理器,指定静态资源的路径和位置。
```java
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**")
.addResourceLocations("classpath:/static/");
}
}
```
2. 创建一个安全配置类,继承WebSecurityConfigurerAdapter,并重写configure方法。在该方法中,配置安全规则和权限控制。
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasAnyRole("ADMIN", "USER")
.anyRequest().authenticated()
.and()
.formLogin()
.and()
.logout().logoutSuccessUrl("/login");
}
}
```
3. 在启动类上添加注解@EnableWebMvc和@EnableWebSecurity,以启用WebMvcConfigurer和WebSecurityConfigurerAdapter。
```java
@SpringBootApplication
@EnableWebMvc
@EnableWebSecurity
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
通过以上步骤,可以同时使用WebMvcConfigurer和WebSecurityConfigurerAdapter,并保证addResourceHandlers方法生效。
阅读全文