From bc6c3b7bf2dd810fc469af69576709f0298cf31f Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Wed, 28 Oct 2020 12:36:46 -0500 Subject: [PATCH] Sort request interceptors. (#419) --- .../cloud/openfeign/FeignClientFactoryBean.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java index be566306..ee5b3272 100644 --- a/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java +++ b/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java @@ -16,6 +16,8 @@ package org.springframework.cloud.openfeign; +import java.util.ArrayList; +import java.util.List; import java.util.Map; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -44,6 +46,7 @@ import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalance import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; +import org.springframework.core.annotation.AnnotationAwareOrderComparator; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -173,7 +176,10 @@ class FeignClientFactoryBean Map requestInterceptors = getInheritedAwareInstances( context, RequestInterceptor.class); if (requestInterceptors != null) { - builder.requestInterceptors(requestInterceptors.values()); + List interceptors = new ArrayList<>( + requestInterceptors.values()); + AnnotationAwareOrderComparator.sort(interceptors); + builder.requestInterceptors(interceptors); } QueryMapEncoder queryMapEncoder = getInheritedAwareOptional(context, QueryMapEncoder.class);