我正在尝试设置一个简单的Spring Boot 应用程序。如果我不使用@EnableWebFluxSecurity
注解,它可以启动。
@Configuration
@EnableWebFluxSecurity
open class ArticleWebSecurityConfig {
@Bean
open fun springSecurityFilterChain(http: ServerHttpSecurity): SecurityWebFilterChain = http
.csrf().disable()
.authorizeExchange()
.anyExchange()
.permitAll()
.and()
.build()
}
启动时出现以下错误:
配置服务器Web服务器应用程序上下文:上下文初始化期间出现异常错误-取消刷新尝试:异常错误:创建在类路径资源[org/springframework/boot/autoconfigure/security/servlet/SpringBootWebSecurityConfiguration.class]中定义的名为'defaultSecurityFilterChain'的Bean时出错:未满足通过方法“defaultSecurityFilterChain”参数0表示的依赖项;嵌套异常是一个嵌套的异常。没有这样的Bean定义异常:没有类型为“org.springframework.security.config.annotation.web.builders.HttpSecurity”的合格Bean可用:至少应有1个符合自动连接候选条件的Bean。依赖关系注解:{}
描述
无法找到“org.springframework. Boot .autoconfigure.security.servlet.SpringBootWebSecurityConfiguration”中方法defaultSecurityFilterChain的参数0所需的类型为“org.springframework.security.config.annotation.web.builders.HttpSecurity”的Bean。
动作:
请考虑在配置中定义类型为“org.springframework.security.config.annotation.web.builders.HttpSecurity”的Bean。
进程已结束,退出代码为1
我使用了下面的@Bean
,但仍然得到相同的错误。
@Throws(Exception::class)
@Bean
open fun configure(http: HttpSecurity) {
http
.authorizeRequests()
.anyRequest()
.authenticated()
.and()
.httpBasic()
}
这些是我的依赖项
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
2条答案
按热度按时间wqsoz72f1#
我遇到了同样的问题。你的一些依赖项带来了spring-boot-starter-web。你需要找到谁在使用mvn dependency:tree,并在你的pom.xml中排除它。
并且还将
2mbi3lxu2#
您需要根据this answer将
@EnableWebFluxSecurity
和@Configuration
相加。