gpt4 book ai didi

java - 使用 WebSecurityConfigurerAdapter 而不是 WebMvcConfigurerAdapter 添加 HandlerInterceptor

转载 作者:行者123 更新时间:2023-12-05 07:48:01 27 4
gpt4 key购买 nike

我的应用有以下配置:

@EnableTransactionManagement
@EnableWebSecurity
public class SecurityApiConfiguration
extends WebSecurityConfigurerAdapter {
...
}

我想添加一个 HandlerInterceptorAdapter。这可能使用 WebSecurityConfigurerAdapter 吗?我只看到使用 WebMvcConfigurerAdapter 的示例。

最佳答案

我在使用 Spring-boot 2.0 时也遇到了同样的问题,因为它不支持的原因如名称本身所说的 HandleInterceptor,总是与 WebMVCConfigurationAdpater 相关联。另一方面,由于我们使用 WebSecurityConfigureAdapter 扩展支持过滤器,我们使用 OncePerRequestFilter

public class SampleInterceptorFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
//Your custom logic
}

}


@Bean
public SampleInterceptorFilter sampleInterceptorFilter() {
return new SampleInterceptorFilter();
}

@Bean
protected FilterRegistrationBean sampleInterceptorFilterRegistor() {
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(sampleInterceptorFilter()());
bean.setName("SOME_NAME_FILTER");
bean.setEnabled(false);
return bean;
}


@Override
protected void configure(final HttpSecurity http) throws Exception {
http.csrf().disable();

//Here we need to configure accordingly order of filter plays vital role
http.addFilterAfter(cyzfilter(), ExceptionTranslationFilter.class).addFilterAfter(xyzFilter(),
ServiceUserPreAuthFilter.class).addFilterBefore(SampleInterceptorFilter(), ServiceUserPreAuthFilter.class);

}

关于java - 使用 WebSecurityConfigurerAdapter 而不是 WebMvcConfigurerAdapter 添加 HandlerInterceptor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39044105/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com