加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – Spring安全和自定义AuthenticationFilter与Spring启动

发布时间:2020-12-14 05:23:53 所属栏目:Java 来源:网络整理
导读:我有自定义身份验证过滤器,它创建了PreAuthenticatedAuthenticationToken,并将其存储在安全上下文中.这一切都很好.这是配置: @Configuration@EnableWebMvcSecuritypublic class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Autowired priva
我有自定义身份验证过滤器,它创建了PreAuthenticatedAuthenticationToken,并将其存储在安全上下文中.这一切都很好.这是配置:
@Configuration
@EnableWebMvcSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private SsoAuthenticationProvider authenticationProvider;

    @Autowired
    private SsoAuthenticationFilter ssoAuthenticationFilter;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.addFilterAfter(ssoAuthenticationFilter,SecurityContextPersistenceFilter.class);
    }
}

现在我的ssoAuthenticationFilter是FilterChainProxy的一部分,位于正确的位置.光滑.

但是,由于ssoAuthenticationFilter是“过滤器”,所以它被引导并被包含为过滤器.所以我的过滤器链真的像:

> ssoAuthenticationFilter(包括因为是过滤器)
> filterChainProxy(spring autoconfiguration)

> …
> SecurityContextPersistenceFilter
> ssoAuthenticationFilter(由http.addFilterAfter(…)包含)
> …

>其他一些过滤器

显然,我想在这里清除ssoAuthenticationFilter的自动注册(列出的第一个).

任何提示非常感激.

解决方法

2个选择:

>将FilterRegistrationBean @Bean添加到过滤器bean作为其目标过滤器,并将其标记为enabled = false>不要为您的过滤器创建一个@Bean定义(通常这就是我所做的,但YMMV,因为您可能依赖自动装配或某些东西来使其工作)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读