springboot2.6.13如何 WebMvcConfigurer和WebSecurityConfigurerAdapter实现方法同时生效
时间: 2024-03-25 18:32:55 浏览: 101
Spring Boot配置接口WebMvcConfigurer的实现
在Spring Boot 2.6.13中,可以通过实现WebMvcConfigurer和WebSecurityConfigurerAdapter接口来同时生效WebMvcConfigurer和WebSecurityConfigurerAdapter的配置方法。
下面是一个示例代码,展示了如何实现这两个接口并使其同时生效:
```java
@Configuration
@EnableWebMvc
public class WebConfig implements WebMvcConfigurer {
// 实现WebMvcConfigurer接口的方法
@Override
public void addInterceptors(InterceptorRegistry registry) {
// 添加拦截器
registry.addInterceptor(new MyInterceptor());
}
}
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 实现WebSecurityConfigurerAdapter接口的方法
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置安全规则
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/user/**").hasRole("USER")
.anyRequest().authenticated()
.and()
.formLogin().permitAll()
.and()
.logout().permitAll();
}
}
```
在上面的示例中,WebConfig类实现了WebMvcConfigurer接口的addInterceptors方法,用于添加拦截器。SecurityConfig类继承了WebSecurityConfigurerAdapter类,并重写了configure方法,用于配置安全规则。
为了使这两个配置同时生效,需要在启动类上添加@EnableWebMvc和@EnableWebSecurity注解,示例如下:
```java
@SpringBootApplication
@EnableWebMvc
@EnableWebSecurity
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
```
这样,WebMvcConfigurer和WebSecurityConfigurerAdapter的配置方法就会同时生效。
阅读全文