orgspringframeworkbootautoconfiguresecurityservletSpringBootWebSecurityConfiguration$SecurityFilterChainConfiguration and orgspringframeworksecurityconfigannotationwebbuildersHttpSecurity 依赖冲突
这里涉及到Spring Security的两个不同版本的依赖冲突问题。
org.springframework.boot.autoconfigure.security.servlet.SpringBootWebSecurityConfiguration$SecurityFilterChainConfiguration是Spring Boot 2.x版本中的类,用于配置Spring Security的过滤器链,而org.springframework.security.config.annotation.web.builders.HttpSecurity是Spring Security 5.x版本中的类,用于配置HTTP请求的安全性。
如果同时引入Spring Boot 2.x和Spring Security 5.x的依赖,就会出现这两个类的冲突。
解决方法:
- 升级Spring Boot版本到2.3以上,这个版本开始默认使用Spring Security 5.x,避免了依赖冲突问题。
- 如果无法升级Spring Boot版本,可以通过排除Spring Security的依赖,再显式地引入Spring Security 5.x的依赖来解决冲突。具体做法如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-config</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-web</artifactId>
<version>5.2.1.RELEASE</version>
</dependency>
这样就可以保证Spring Boot和Spring Security的版本兼容,避免依赖冲突问题
原文地址: https://www.cveoy.top/t/topic/dcAj 著作权归作者所有。请勿转载和采集!