2

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

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

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

版本信息:

  • 弹簧启动:1.3.5
  • 弹簧云:Brixton.SR3
  • 春天云侦探:1.0.3
  • spring-security-oauth2:2.0.9

更新: 根据下面的建议,我可以通过将自己的 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;
}
4

1 回答 1

1

您可以自己注册 TraceFilter 并手动提供订单。试着把它放在弹簧安全过滤器之前。如果一切正常,您可以提交一个 PR / issue 描述整个流程,以便我们继续讨论。

于 2017-01-23T13:53:41.463 回答