如何使用 spring-cloud-sleuth 来追踪 spring-security-oauth 活动?

How to use spring-cloud-sleuth to trace spring-security-oauth activities?

我正在尝试使用 spring-cloud-sleuth 来跟踪由 spring-security-oauth 发起的 https 请求。

但我坚持认为 spring-security-oauth 过滤器 OAuth2AuthenticationProcessingFilter 在 spring-cloud-sleuth 过滤器 TraceFilter 之前执行。

是否可以更改此设置,以便在 spring-security-oauth 过滤器之前处理 spring-cloud-sleuth 过滤器?

版本信息:

更新: 根据下面的建议,我可以通过将自己的 FilterRegistrationBean 定义为来解决问题:

@Inject
TraceFilter traceFilter;

@Bean
public FilterRegistrationBean myTraceFilter() {
    LOG.info("Register a TraceFilter with HIGHEST_PRECEDENCE");
    FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(traceFilter, new ServletRegistrationBean[0]);
    filterRegistrationBean.setDispatcherTypes(ASYNC, new DispatcherType[]{ERROR, FORWARD, INCLUDE, REQUEST});
    filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
    return filterRegistrationBean;
}

您可以自己注册TraceFilter,手动提供顺序。只需尝试将其放在 spring 安全过滤器之前。如果一切正常,您可以提交描述整个流程的 PR / 问题,以便我们在那里继续讨论。