Class ReverseProxy

  • All Implemented Interfaces:
    io.muserver.MuHandler

    public class ReverseProxy
    extends java.lang.Object
    implements io.muserver.MuHandler
    The core implementation for ReverseProxy
    Version:
    1.0
    Author:
    Daniel Flower
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.util.Set<java.lang.String> HOP_BY_HOP_HEADERS
      An unmodifiable set of the Hop By Hop headers.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean handle​(io.muserver.MuRequest clientRequest, io.muserver.MuResponse clientResponse)
      static void setForwardedHeaders​(io.muserver.MuRequest clientRequest, java.net.http.HttpRequest.Builder targetRequestBuilder, boolean discardClientForwardedHeaders, boolean sendLegacyForwardedHeaders)
      Sets Forwarded and optionally X-Forwarded-* headers to the target request, based on the client request
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • HOP_BY_HOP_HEADERS

        public static final java.util.Set<java.lang.String> HOP_BY_HOP_HEADERS
        An unmodifiable set of the Hop By Hop headers. All are in lowercase.
    • Method Detail

      • handle

        public boolean handle​(io.muserver.MuRequest clientRequest,
                              io.muserver.MuResponse clientResponse)
                       throws java.lang.Exception
        Specified by:
        handle in interface io.muserver.MuHandler
        Throws:
        java.lang.Exception
      • setForwardedHeaders

        public static void setForwardedHeaders​(io.muserver.MuRequest clientRequest,
                                               java.net.http.HttpRequest.Builder targetRequestBuilder,
                                               boolean discardClientForwardedHeaders,
                                               boolean sendLegacyForwardedHeaders)
        Sets Forwarded and optionally X-Forwarded-* headers to the target request, based on the client request
        Parameters:
        clientRequest - the received client request
        targetRequestBuilder - the target request builder to write the headers to
        discardClientForwardedHeaders - if true then existing Forwarded headers on the client request will be discarded (normally false, unless you do not trust the upstream system)
        sendLegacyForwardedHeaders - if true then X-Forwarded-Proto/Host/For headers will also be added