当我尝试编写配置类时,WebSecurityConfigurerAdapter类无法解析,注释@EnableWebSecurity也无法解析。
我认为这是由版本冲突引起的,因此我尝试更改spring-boot-starter-security的版本。事实证明,该类无法在版本2.0.6中扩展,但可以在版本2.0.0中使用。
那么2.0.6中是否有WebSecurityConfigurerAdapter的替代品?
这是我的pom.xml
<groupId>com.example</groupId>
<artifactId>registertest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>registertest</name>
<description>Demo login and register for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<!--Version 2.0.6 will cause a conflict, we need to modify the version to 1.5.6-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--if you do not want to modify the version above, the following dep is the substitution-->
<!--<dependency>-->
<!--<groupId>org.springframework.security</groupId>-->
<!--<artifactId>spring-security-config</artifactId>-->
<!--<version>4.2.3.RELEASE</version>-->
<!--</dependency>-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.sourceforge.nekohtml</groupId>
<artifactId>nekohtml</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
答案 0 :(得分:1)
如果使用父级,则不需要在依赖项中提及版本,因为它将自动处理所有必需的兼容版本和负载。
因此请在下面使用而不使用版本。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
注意:如果您想扩展WebSecurityConfigurerAdapter
或可以实现WebSecurityConfigurer
,则srcfiles := $(shell find . -path .build -prune -o -type f -name '*.lua' -print)
dstfiles := $(addprefix .build/,$(srcfiles))
.PHONY: compress clean deploy
compress: $(dstfiles)
$(dstfiles): .build/%: %
mkdir -p $(dir $@)
luamin -f $< > $@
clean:
rm -rf ./.build
deploy: .build
cp ./.build/* ~
在2.0.6中可用。
答案 1 :(得分:0)
在Spring Boot 2.0.6中,您仍将使用:
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
如果您进行了版本升级,则可能会将它们都保存在.m2存储库中,而maven不知道要使用哪个版本。
解决方案:请删除.m2文件夹-根据您的操作系统检查其位置-请注意,该文件夹为隐藏文件夹。
删除spring-boot-starter-security
的版本并运行命令mvn clean package
以重新导入所有依赖项。