2727import org .prebid .cache .routers .ApiConfig ;
2828import org .springframework .beans .factory .annotation .Autowired ;
2929import org .springframework .beans .factory .annotation .Value ;
30+ import org .springframework .http .HttpHeaders ;
3031import org .springframework .http .HttpStatus ;
3132import org .springframework .http .MediaType ;
3233import org .springframework .stereotype .Component ;
4445import java .util .HashMap ;
4546import java .util .List ;
4647import java .util .Map ;
48+ import java .util .function .Consumer ;
4749import java .util .function .Function ;
4850
4951@ Component
@@ -210,6 +212,7 @@ private void sendRequestToSecondaryPrebidCacheHosts(List<PayloadWrapper> payload
210212 .uri (uriBuilder -> uriBuilder .path (config .getSecondaryCachePath ())
211213 .queryParam ("secondaryCache" , "yes" ).build ())
212214 .contentType (MediaType .APPLICATION_JSON )
215+ .headers (enrichWithSecurityHeader ())
213216 .bodyValue (RequestObject .of (payloadTransfers ))
214217 .exchange ()
215218 .transform (CircuitBreakerOperator .of (circuitBreaker ))
@@ -228,6 +231,13 @@ private void sendRequestToSecondaryPrebidCacheHosts(List<PayloadWrapper> payload
228231 }
229232 }
230233
234+ private Consumer <HttpHeaders > enrichWithSecurityHeader () {
235+ final String apiKey = apiConfig .getApiKey ();
236+ return apiKey != null
237+ ? httpHeaders -> httpHeaders .set (API_KEY_HEADER , apiKey )
238+ : httpHeaders -> { };
239+ }
240+
231241 private PayloadTransfer wrapperToTransfer (final PayloadWrapper wrapper ) {
232242 return PayloadTransfer .builder ().type (wrapper .getPayload ().getType ())
233243 .key (wrapper .getId ()).value (wrapper .getPayload ().getValue ()).expiry (wrapper .getExpiry ()).build ();
0 commit comments