Interface ClientHeadersFactory

All Known Implementing Classes:
DefaultClientHeadersFactoryImpl

public interface ClientHeadersFactory
This interface is intended for generating or propagating HTTP headers. It is invoked by the MP Rest Client implementation before invoking any entity providers on the outbound processing chain. It contains a single method, update which takes parameters of headers passed in from the incoming JAX-RS request (if applicable, if not, this will be an empty map) and a read-only map of headers specified by ClientHeaderParam or HeaderParam annotations on the client interface.

This method should return a MultivaluedMap of headers to be merged with the outgoing headers. This will determine the final set of HTTP headers that will be sent to the outbound entity provider processing chain - thus any filters, MessageBodyWriters, interceptors, etc. could further refine the set of headers actually sent on the client request.

If the ClientHeadersFactory instance is invoked while in the context of a JAX-RS request, the implementation may optionally support injection of fields and methods annotated with @Context.

If the ClientHeadersFactory instance is managed by CDI (i.e. it is annotated with @ApplicationScoped, etc.), the implementation must use the appropriate CDI-managed instance, and must support @Inject injection.

Since:
1.2
  • Method Details

    • update

      MultivaluedMap<String,String> update(MultivaluedMap<String,String> incomingHeaders, MultivaluedMap<String,String> clientOutgoingHeaders)
      Updates the HTTP headers to send to the remote service. Note that providers on the outbound processing chain could further update the headers.
      Parameters:
      incomingHeaders - - the map of headers from the inbound JAX-RS request. This will be an empty map if the associated client interface is not part of a JAX-RS request.
      clientOutgoingHeaders - - the read-only map of header parameters specified on the client interface.
      Returns:
      a map of HTTP headers to merge with the clientOutgoingHeaders to be sent to the remote service.