java - AlreadyBuiltException:此对象已被构建
问题描述
将 Spring Boot 从 2.1.10 升级到 2.2.1 时出现安全配置错误
org.springframework.security.config.annotation.AlreadyBuiltException: This object has already been built
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [javax.servlet.Filter]: Factory method 'springSecurityFilterChain' threw exception; nested exception is org.springframework.security.config.annotation.AlreadyBuiltException: This object has already been built
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:185)
at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:640)
... 60 common frames omitted
Caused by: org.springframework.security.config.annotation.AlreadyBuiltException: This object has already been built
at org.springframework.security.config.annotation.AbstractSecurityBuilder.build(AbstractSecurityBuilder.java:44)
at org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration.springSecurityFilterChain(WebSecurityConfiguration.java:104)
at jdk.internal.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 61 common frames omitted
解决方案
安全性配置了两次“.anyRequest().authenticated()”
http
.csrf().disable()
.httpBasic().and()
.authorizeRequests().antMatchers("/actuator/**").hasAnyRole("ACTUATOR")
.anyRequest().authenticated()
.anyRequest().authenticated();
推荐阅读
- c# - 如何从视图中获取数据
- laravel - Laravel 和 Vue 是否总是使用 RESTful API 进行通信?
- hybris - 我可以在 ZK 中为 Listitem 创建一个可扩展的 Listbox 吗?
- elasticsearch - 如何在不达到 Elasticsearch 限制的情况下处理拆分的文档
- c# - 数据为表格格式时读取excel
- javascript - 如何更有效地管理html按钮点击事件?
- javascript - 如何使多个用户可以访问 iframe?
- python - 将新列添加到多个 .csv 并使用文件名填充
- mysql - 需要 SQL 建议
- javascript - .NET Core MVC - 带有前缀绑定的 AJAX POST 请求