77import jakarta .ws .rs .core .MultivaluedMap ;
88
99import org .eclipse .microprofile .rest .client .ext .ClientHeadersFactory ;
10+ import org .slf4j .Logger ;
11+ import org .slf4j .LoggerFactory ;
1012
1113import io .quarkiverse .openapi .generator .OpenApiGeneratorConfig ;
1214
@@ -23,6 +25,8 @@ public abstract class AbstractAuthenticationPropagationHeadersFactory implements
2325 protected OpenApiGeneratorConfig generatorConfig ;
2426 protected HeadersProvider headersProvider ;
2527
28+ private static final Logger LOGGER = LoggerFactory .getLogger (AbstractAuthenticationPropagationHeadersFactory .class );
29+
2630 protected AbstractAuthenticationPropagationHeadersFactory (BaseCompositeAuthenticationProvider compositeProvider ,
2731 OpenApiGeneratorConfig generatorConfig ,
2832 HeadersProvider headersProvider ) {
@@ -36,6 +40,11 @@ public MultivaluedMap<String, String> update(MultivaluedMap<String, String> inco
3640 MultivaluedMap <String , String > clientOutgoingHeaders ) {
3741 MultivaluedMap <String , String > propagatedHeaders = new MultivaluedHashMap <>();
3842 MultivaluedMap <String , String > providedHeaders = headersProvider .getStringHeaders (generatorConfig );
43+
44+ LOGGER .debug ("Incoming headers keys{}" , incomingHeaders .keySet ());
45+ LOGGER .debug ("Outgoing headers keys{}" , clientOutgoingHeaders .keySet ());
46+ LOGGER .debug ("Provided headers keys{}" , providedHeaders .keySet ());
47+
3948 compositeProvider .getAuthenticationProviders ().stream ()
4049 .filter (AbstractAuthProvider .class ::isInstance )
4150 .map (AbstractAuthProvider .class ::cast )
@@ -46,9 +55,14 @@ public MultivaluedMap<String, String> update(MultivaluedMap<String, String> inco
4655 // get priority to the headers coming from the headers provider.
4756 List <String > headerValue = providedHeaders .get (headerName );
4857 if (headerValue == null ) {
49- // lastly look into the incoming headers.
58+ // next, look into the incoming headers.
5059 headerValue = incomingHeaders .get (headerName );
5160 }
61+ if (headerValue == null ) {
62+ // lastly look into the outgoing headers.
63+ headerValue = clientOutgoingHeaders .get (headerName );
64+ }
65+
5266 if (headerValue != null ) {
5367 propagatedHeaders .put (propagationHeaderName (authProvider .getOpenApiSpecId (),
5468 authProvider .getName (),
0 commit comments