spring - 如何在 spring 安全过滤器之后添加自定义过滤器顺序?

标签 spring security spring-boot filter

我的过滤器如下:

@Component
@Order(1)
public class MDCFilter implements Filter {
.....

和 application.properties

security.filter-order=0

在上面的设置中——我的过滤器先出现,然后是安全过滤器。但是在 spring 安全过滤器之后我需要 mdcFilter。

最佳答案

您可以通过像这样定义您的安全配置,将您的过滤器放在特定的 spring-security 过滤器旁边:

@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Autowired
    private MDCFilter mdcFilter;

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.addFilterBefore(mdcFilter, UsernamePasswordAuthenticationFilter.class);

    }
}

在上面的示例中,您的过滤器将位于 UsernamePasswordAuthenticationFilter 之前。您还可以使用 HttpSecurity 类方法 addFilterAfter(Filter filter, Class<? extends Filter> afterFilter)addFilterAt(Filter filter, Class<? extends Filter> atFilter)指定您的过滤顺序。

关于spring - 如何在 spring 安全过滤器之后添加自定义过滤器顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40471429/

相关文章:

spring - "LinkageError--> loader ' 应用程序 ' attempted duplicate class definition"将类标记为 @Transactional 后

security - Symfony2 in_memory 用户提供程序问题

database - Spring Boot postgresql内嵌tomcat启动失败

spring-boot - 为什么 Spring Boot 用 Spring 的叶子图标替换了我所有的图标?

objective-c - 仅要求标准帐户的管理员权限

java - SimpleDateFormat 不解析毫秒和 MySql 舍入日期

spring - 在 Tomcat 服务器上的应用程序中实现不同的目的地

spring - Grails 2.4.2 bean spring bean注入(inject)

java - 如何解决无法通过 ID 恢复实体的问题?

java - 如何防止用户修改其他用户的数据?