Spring   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java – 未调用Spring Security过滤器大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我在弹簧启动应用程序中配置了过滤器的代码.当我发出请求时,我的第二个过滤器是B,不会调用.

import org.springframework.security.config.Annotation.web.builders.httpSecurity;
import org.springframework.security.config.Annotation.web.builders.WebSecurity;
import org.springframework.security.config.Annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.Annotation.web.servlet.configuration.EnableWebMvcSecurity;

@Configuration
@EnableWebMvcSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter  {
    @Override
    public void configure(WebSecurity webSecurity) throws Exception {
        webSecurity.ignoring().antMatchers(httpR_760_11845@ethod.GET,"/health");
    }
    @Override
    protected void configure(httpSecurity http) throws Exception {
        http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
        http.addFilterBefore(new A(),BasicAuthenticationFilter.class);
        http.addFilterAfter(new B(),new A().getClass());
    }
}

import org.springframework.web.filter.GenericFilterBean;
public class A extends GenericFilterBean {

    @Override
    public void doFilter(Servletrequest arg0,ServletResponse arg1,FilterChain arg2)
            throws IOException,ServletException {
        System.out.println("filter A");
    }
}

import org.springframework.web.filter.GenericFilterBean;
public class B extends GenericFilterBean {

    @Override
    public void doFilter(Servletrequest arg0,ServletException {
        System.out.println("filter B");         
    }
}

编辑:

 public class A extends GenericFilterBean {

        @Override
        public void doFilter(Servletrequest arg0,FilterChain arg2) throws IOException,ServletException {
             System.out.println("filter A Before");
             arg2.doFilter(arg0,arg1);
             System.out.println("filter A After");
        }
}
最佳答案
你的配置是正确的.但是你需要将你的请求从过滤器A传递到过滤器B,如M. Deinum所述.只是打印不行.在你的代码中它应该像过滤器A中的arg2.doFilter().

docs开始,它说,

>检查请求
>可选择使用自定义实现将请求对象包装到
过滤内容标题以进行输入过滤
>可选择使用自定义实现包装响应对象
过滤内容标题以进行输出过滤
>使用FilterChain调用链中的下一个实体
object(chain.doFilter()),或者不传递请求/响应对
到筛选器链中的下一个实体来阻止请求
处理
>在调用一个响应后直接在响应上设置标头
过滤器链中的实体.

大佬总结

以上是大佬教程为你收集整理的java – 未调用Spring Security过滤器全部内容,希望文章能够帮你解决java – 未调用Spring Security过滤器所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。