新建类 customFilterSecurityInterceptor ,重写FilterSecurityInterceptor 拦截器,,项目启动报错:
org.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customFilterSecurityInterceptor' defined in file [D:\project\zuoye\gowin-admin\admin-common\target\classes\com\itutorgroup\admin\common\config\CustomFilterSecurityInterceptor.class]: Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: An AccessDecisionManager is required
```java
@Component
@Slf4j
public class CustomFilterSecurityInterceptor extends FilterSecurityInterceptor {
@Resource
private AccessDecisionManager accessDecisionManager;
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("------------333333-----------3333333333333-------------------------------------");
log.info("------------333333-----------3333333333333-------------------------------------");
super.doFilter(request, response, chain);
}
@Override
public void afterPropertiesSet() {
super.afterPropertiesSet();
setAccessDecisionManager(accessDecisionManager);
}
在WebSecurityConfigurerAdapter 里面也添加了AccessDecisionManager 不生效
@Order(1)
@Slf4j
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Resource
private AccessDecisionManager accessDecisionManager;
@Override
protected void configure(HttpSecurity http) throws Exception {
System.out.println("------------0000000000-----------00000000000000000000-------------------------------------");
log.info("------------0000000000-----------00000000000000000000-------------------------------------");
http.authorizeRequests().accessDecisionManager(accessDecisionManager)
.antMatchers("/api/captcha/get/**").permitAll()
.anyRequest().authenticated()
.and().formLogin().permitAll()
.and().csrf().disable();
http.addFilterBefore(customFilterSecurityInterceptor, FilterSecurityInterceptor.class);
}
我尝试了很多种加AccessDecisionManager ,还是不行,SecurityConfig的 方法 configure 和 CustomFilterSecurityInterceptor的方法doFilter
没有sysout打印和log,info打印
版本包信息如下:
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/61472501998615.png "#left")
折腾了一天了,想不通,求解答