1
나는 spring-security-oauth가 시작한 https 요청을 추적하기 위해 spring-cloud-sleuth를 사용하려고합니다.spring-security-oauth 활동을 추적하기 위해 spring-cloud-sleuth를 사용하는 방법?
하지만 스프링 - 클라우드 - 썬더 필터 TraceFilter 전에 OAuth2AuthenticationProcessingFilter가 실행됩니다.
spring-security-oauth 필터 이전에 spring-cloud-sleuth 필터가 처리되도록 변경할 수 있습니까?
버전 정보 :
- 봄 부팅 : 1.3.5
- 스프링 클라우드 : Brixton.SR3
- 스프링 클라우드 형사 : 1.0.3
- 스프링 보안 OAuth2를 : 2.0.9
업데이트 : 나는 P를 해결할 수 아래의 제안을 바탕으로 로 내 자신의 FilterRegistrationBean을 정의하여 roblem :
@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;
}
빠른 응답을 보내 주셔서 감사합니다. 는 같은 FilterRegistrationBean를 사용하여 의미합니까 : @Bean 공공 FilterRegistrationBean getSleuthTraceFilterRegistrationBean() { FilterRegistrationBean 콩 = 새로운 FilterRegistrationBean(); bean.setFilter (새 TraceFilter (...)); bean.setOrder (1); bean.addUrlPatterns ("/"); return bean; } TraceFilter를 생성하려면 어떻게해야합니까? 생성자는 다음과 같이 자세한 내용을 입력해야합니다. TraceFilter를 등록하는 다른 간단한 방법을 놓쳤습니까? –
지저분한 의견에 사과드립니다. 'FilterRegistrationBean'을 사용하고 싶습니까? 그러나 어떻게'TraceFilter' 객체를 만들 수 있습니까? 생성자는 많은 세부 사항을 필요로합니다 ... 아니면 TraceFilter를 등록하는 더 쉬운 방법이 있습니까? –
등록을 담당하는 두 개의 bean이 있습니다 - https://github.com/spring-cloud/spring-cloud-sleuth/blob/master/spring-cloud-sleuth-core/src/main/java/org/ springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java # L98 제대로 작동하는지 확신 할 수 없지만 분명히 콩을 재사용하고 같은 방식으로 상위 순서로 등록하려고 시도 할 수 있습니다. 'TraceFilter'는 이미 bean입니다 - 당신은 그것을 삽입 할 수 있습니다. –