spring - 使 Custom Filter 和 WebSecurityConfig 在 Actuator 之后运行
问题描述
我正在尝试使用扩展的自定义过滤器来实现无状态身份验证AbstractPreAuthenticatedProcessingFilter
。过滤器在本地工作正常。
我们定义了在部署期间触发的执行器。由于自定义过滤器依赖于 REST API,它失败了,因为执行器只是调用/health
端点。
有没有办法在执行器调用之后推迟WebSecurityConfig
及其关联。CustomFilter
换句话说,在 Spring Security 过滤器链之前调用执行器?
WebSecurityConfig.java
@Configuration
@EnableWebSecurity
@Slf4j
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/actuator/**", "/healthcheck/**", "/health/**", "/actuator/health");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.antMatcher("/**")
.authorizeRequests().anyRequest().authenticated()
.and()
.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS)
.and()
.httpBasic();
http.addFilterAfter(customAuthFilter(), BasicAuthenticationFilter.class);
}
@Bean
public CustomAuthFilter customAuthFilter() throws Exception {
CustomAuthFilter customAuthFilter = new CustomAuthFilter();
customAuthFilter.setAuthenticationManager(authenticationManagerBean());
return customAuthFilter;
}
}
注意:CustomFilter
是验证标头值的验证过滤器。
CustomFilter.java
:
@Component
public class CustomFilter extends AbstractPreAuthenticatedProcessingFilter {
... business logic
}
春季启动版本:2.2
解决方案
推荐阅读
- tensorflow - tf.data.Dataset 迭代器返回 Tensor("IteratorGetNext:1", shape=(None, 16), dtype=int32) 但无法获取张量的值
- javascript - 如何使用反应从投票应用程序中删除选项?
- pytorch - pytorch-lightning 中的正态分布采样
- python - 从服务运行时出现服务器内部服务器错误
- java - 休眠:实体未映射
- opengl - gl_FragColor 被移除的原因
- npm - 上次 MacOS Catalina 更新后 npm install 挂起
- c++ - 尽管 json.hpp 与 main.cpp 位于同一文件夹中,但出现“json.hpp:没有这样的文件或目录”错误
- php - sql查询以获取未从帖子库中删除的图像
- ruby-on-rails - 无需 API 即可集成来自第三方软件的数据