我在 IDP 模式和 spring-boot 中使用 spring-security-oauth2。在从请求中提取 oauth token 之前,我需要做一些工作。如何在 OAuth2AuthenticationProcessingFilter
之前添加过滤器?
我试过了:
@Configuration
@EnableResourceServer
public class OAuth2ResourceServerConfigurerAdapter extends ResourceServerConfigurerAdapter {
@Override
public void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().authenticated().and()
.addFilterBefore(new MyFilter(), OAuth2AuthenticationProcessingFilter.class);
}
}
但我得到以下异常:
java.lang.IllegalArgumentException: Cannot register after unregistered Filter class org.springframework.security.oauth2.provider.authentication.OAuth2AuthenticationProcessingFilter
我猜这可能是因为
@EnableResourceServer
在 configure(HttpSecurity http)
之后执行.
最佳答案
我通过这样做实现了所需的功能
.addFilterBefore(new MyTokenFilter(), AbstractPreAuthenticatedProcessingFilter.class)
关于spring-security - 在 OAuth2AuthenticationProcessingFilter 之前添加过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46801064/