如何使用 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 过滤器?
版本信息:
- spring-引导:1.3.5
- spring-云:Brixton.SR3
- spring-云侦探: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;
}
您可以自己注册TraceFilter,手动提供顺序。只需尝试将其放在 spring 安全过滤器之前。如果一切正常,您可以提交描述整个流程的 PR / 问题,以便我们在那里继续讨论。
我正在尝试使用 spring-cloud-sleuth 来跟踪由 spring-security-oauth 发起的 https 请求。
但我坚持认为 spring-security-oauth 过滤器 OAuth2AuthenticationProcessingFilter 在 spring-cloud-sleuth 过滤器 TraceFilter 之前执行。
是否可以更改此设置,以便在 spring-security-oauth 过滤器之前处理 spring-cloud-sleuth 过滤器?
版本信息:
- spring-引导:1.3.5
- spring-云:Brixton.SR3
- spring-云侦探: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;
}
您可以自己注册TraceFilter,手动提供顺序。只需尝试将其放在 spring 安全过滤器之前。如果一切正常,您可以提交描述整个流程的 PR / 问题,以便我们在那里继续讨论。