我已经配置了我的过滤器,如下所示,但它不会在 Spring Security 过滤器链之前被调用。我已将订单设置为零
我正在使用 Spring Boot 1.3,它支持在过滤器上设置顺序
@Bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean();
registrationBean.setFilter(new UrlRewriteFilter());
registrationBean.addUrlPatterns("*");
registrationBean.addInitParameter("confReloadCheckInterval", "5");
registrationBean.addInitParameter("logLevel", "DEBUG");
registrationBean.addInitParameter("confPath", "urlrewrite.xml");
registrationBean.setOrder(0);
return registrationBean;
}
应用程序属性
security.filter-order=5
//>spring 2.1.3
spring.security.filter-order=5
这些属性会不时发生变化,可以在此处找到
https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#actuator-properties https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-application-properties.html#actuator-properties
我自己没有这样做,但查看代码,您似乎只需要为安全过滤器的顺序设置一个属性。例如在 application.properties 中
这应该将您的过滤器排列在安全过滤器之前。我不知道改变这个顺序会产生什么影响,就安全而言,我觉得有点冒险。 Spring 开发人员对此进行了讨论。最终他们实施了我上面的答案。
讨论
https://github.com/spring-projects/spring-boot/issues/1640
测试显示此属性的作用。(搜索 testCustomFilterOrder())
https://github.com/spring-projects/spring-boot/blob/1.2.x/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/SecurityAutoConfigurationTests.java
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)