为Spring Boot 2.0仿真器框架配置安全性
我想在我的Spring Boot 2.0应用程序中使用Spring Actuator框架。框架本身按照预期工作,因此我能够到达例如我的/actuator/health
终结点。在那里,我呈现了一个登录对话框。我想摆脱它,并尝试了以下方法:
@Configuration
@EnableWebFluxSecurity
public class SecurityConfiguration {
@Bean
public SecurityWebFilterChain securityWebFilterChain(ServerHttpSecurity http) {
return http
.authorizeExchange()
.matchers(EndpointRequest.to("prometheus")).permitAll()
.matchers(EndpointRequest.toAnyEndpoint()).authenticated()
.anyExchange().permitAll()
.and()
.formLogin()
.and()
.httpBasic()
.and()
.build();
}
但是,在应用程序启动期间,我收到以下错误:
未能实例化[org.springframework.security.web.server.SecurityWebFilterChain]:工厂方法‘securityWebFilterChain’引发异常;嵌套异常为java.lang.IlLegalArgumentException:身份验证管理器不能为空
当然,我试图搜索它,但我总是只能得到描述使用Spring Boot 1.x框架的不同场景或安全配置的页面。有人能帮我一下吗?
解决方案
最简单的方法应该是让SecurityConfiguration
扩展WebSecurityConfigurerAdapter
并覆盖configure(WebSecurity web)
,如下所示:
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring()
.antMatchers("/actuator/**");
}
// ...
}
另外,我不熟悉@EnableWebFluxSecurity
,但要使上面的内容正常工作,您需要同时使用@Configuration
和@EnableWebSecurity
注释。
SecurityWebFilterChain
。
相关文章