private static HttpConnectionFactory createHttpConnectionFactory() { HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setSecureScheme("https"); httpConfig.addCustomizer(new ForwardedRequestCustomizer()); return new HttpConnectionFactory(httpConfig); }
private void configureProxiedConnector(HttpConfiguration httpConfig) { // Check to see if we are deployed behind a proxy // Refer to http://eclipse.org/jetty/documentation/current/configuring-connectors.html if (isXFFEnabled()) { ForwardedRequestCustomizer customizer = new ForwardedRequestCustomizer(); // default: "X-Forwarded-For" String forwardedForHeader = getXFFHeader(); if (forwardedForHeader != null) { customizer.setForwardedForHeader(forwardedForHeader); } // default: "X-Forwarded-Server" String forwardedServerHeader = getXFFServerHeader(); if (forwardedServerHeader != null) { customizer.setForwardedServerHeader(forwardedServerHeader); } // default: "X-Forwarded-Host" String forwardedHostHeader = getXFFHostHeader(); if (forwardedHostHeader != null) { customizer.setForwardedHostHeader(forwardedHostHeader); } // default: none String hostName = getXFFHostName(); if (hostName != null) { customizer.setHostHeader(hostName); } httpConfig.addCustomizer(customizer); } httpConfig.setRequestHeaderSize(JiveGlobals.getIntProperty(HTTP_BIND_REQUEST_HEADER_SIZE, HTTP_BIND_REQUEST_HEADER_SIZE_DEFAULT)); }
if (getForwardedCipherSuiteHeader()!=null) String cipher_suite=httpFields.get(getForwardedCipherSuiteHeader()); if (cipher_suite!=null) request.setAttribute("javax.servlet.request.cipher_suite",cipher_suite); if (getForwardedSslSessionIdHeader()!=null) String ssl_session_id=httpFields.get(getForwardedSslSessionIdHeader()); if(ssl_session_id!=null) String forwardedHost = getLeftMostFieldValue(httpFields,getForwardedHostHeader()); String forwardedServer = getLeftMostFieldValue(httpFields,getForwardedServerHeader()); String forwardedFor = getLeftMostFieldValue(httpFields,getForwardedForHeader()); String forwardedProto = getLeftMostFieldValue(httpFields,getForwardedProtoHeader());
if (getForwardedCipherSuiteHeader()!=null && getForwardedCipherSuiteHeader().equalsIgnoreCase(name)) if (isSslIsSecure()) if (getForwardedSslSessionIdHeader()!=null && getForwardedSslSessionIdHeader().equalsIgnoreCase(name)) if (isSslIsSecure()) forwardedHost = getLeftMost(field.getValue()); forwardedServer = getLeftMost(field.getValue()); forwardedFor = getLeftMost(field.getValue()); forwardedProto = getLeftMost(field.getValue()); forwardedHttps = getLeftMost(field.getValue());
if (getForwardedCipherSuiteHeader()!=null) String cipher_suite=httpFields.getStringField(getForwardedCipherSuiteHeader()); if (cipher_suite!=null) request.setAttribute("javax.servlet.request.cipher_suite",cipher_suite); if (getForwardedSslSessionIdHeader()!=null) String ssl_session_id=httpFields.getStringField(getForwardedSslSessionIdHeader()); if(ssl_session_id!=null) String forwardedHost = getLeftMostFieldValue(httpFields,getForwardedHostHeader()); String forwardedServer = getLeftMostFieldValue(httpFields,getForwardedServerHeader()); String forwardedFor = getLeftMostFieldValue(httpFields,getForwardedForHeader()); String forwardedProto = getLeftMostFieldValue(httpFields,getForwardedProtoHeader());
private void configureProxiedConnector(HttpConfiguration httpConfig) { // Check to see if we are deployed behind a proxy // Refer to http://eclipse.org/jetty/documentation/current/configuring-connectors.html if (isXFFEnabled()) { ForwardedRequestCustomizer customizer = new ForwardedRequestCustomizer(); // default: "X-Forwarded-For" String forwardedForHeader = getXFFHeader(); if (forwardedForHeader != null) { customizer.setForwardedForHeader(forwardedForHeader); } // default: "X-Forwarded-Server" String forwardedServerHeader = getXFFServerHeader(); if (forwardedServerHeader != null) { customizer.setForwardedServerHeader(forwardedServerHeader); } // default: "X-Forwarded-Host" String forwardedHostHeader = getXFFHostHeader(); if (forwardedHostHeader != null) { customizer.setForwardedHostHeader(forwardedHostHeader); } // default: none String hostName = getXFFHostName(); if (hostName != null) { customizer.setHostHeader(hostName); } httpConfig.addCustomizer(customizer); } httpConfig.setRequestHeaderSize(JiveGlobals.getIntProperty(HTTP_BIND_REQUEST_HEADER_SIZE, HTTP_BIND_REQUEST_HEADER_SIZE_DEFAULT)); }
@Override public void customize(Server server) { ForwardedRequestCustomizer customizer = new ForwardedRequestCustomizer(); for (Connector connector : server.getConnectors()) { for (ConnectionFactory connectionFactory : connector .getConnectionFactories()) { if (connectionFactory instanceof HttpConfiguration.ConnectionFactory) { ((HttpConfiguration.ConnectionFactory) connectionFactory) .getHttpConfiguration().addCustomizer(customizer); } } } }
if (getForwardedCipherSuiteHeader()!=null) String cipher_suite=httpFields.getStringField(getForwardedCipherSuiteHeader()); if (cipher_suite!=null) request.setAttribute("javax.servlet.request.cipher_suite",cipher_suite); if (getForwardedSslSessionIdHeader()!=null) String ssl_session_id=httpFields.getStringField(getForwardedSslSessionIdHeader()); if(ssl_session_id!=null) String forwardedHost = getLeftMostFieldValue(httpFields,getForwardedHostHeader()); String forwardedServer = getLeftMostFieldValue(httpFields,getForwardedServerHeader()); String forwardedFor = getLeftMostFieldValue(httpFields,getForwardedForHeader()); String forwardedProto = getLeftMostFieldValue(httpFields,getForwardedProtoHeader());
private Connector plainConnector(Jetty9Server server) { HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setOutputBufferSize(systemEnvironment.get(SystemEnvironment.RESPONSE_BUFFER_SIZE)); httpConfig.setSendServerVersion(false); httpConfig.addCustomizer(new ForwardedRequestCustomizer()); ServerConnector httpConnector = new ServerConnector(server.getServer(), new HttpConnectionFactory(httpConfig)); httpConnector.setHost(systemEnvironment.getListenHost()); httpConnector.setPort(systemEnvironment.getServerPort()); httpConnector.setIdleTimeout(systemEnvironment.get(SystemEnvironment.IDLE_TIMEOUT)); return httpConnector; }
if (getForwardedCipherSuiteHeader()!=null) String cipher_suite=httpFields.getStringField(getForwardedCipherSuiteHeader()); if (cipher_suite!=null) request.setAttribute("javax.servlet.request.cipher_suite",cipher_suite); if (getForwardedSslSessionIdHeader()!=null) String ssl_session_id=httpFields.getStringField(getForwardedSslSessionIdHeader()); if(ssl_session_id!=null) String forwardedHost = getLeftMostFieldValue(httpFields,getForwardedHostHeader()); String forwardedServer = getLeftMostFieldValue(httpFields,getForwardedServerHeader()); String forwardedFor = getLeftMostFieldValue(httpFields,getForwardedForHeader()); String forwardedProto = getLeftMostFieldValue(httpFields,getForwardedProtoHeader());
} else { if(globalProps.getProperty("X-Forwarded-For").equals("true")) { http_config.addCustomizer(new org.eclipse.jetty.server.ForwardedRequestCustomizer());
httpsConfig.addCustomizer(new SecureRequestCustomizer()); httpsConfig.setSendServerVersion(false); httpsConfig.addCustomizer(new ForwardedRequestCustomizer());
protected HttpConfiguration buildHttpConfiguration() { final HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setHeaderCacheSize((int) headerCacheSize.toBytes()); httpConfig.setOutputBufferSize((int) outputBufferSize.toBytes()); httpConfig.setRequestHeaderSize((int) maxRequestHeaderSize.toBytes()); httpConfig.setResponseHeaderSize((int) maxResponseHeaderSize.toBytes()); httpConfig.setSendDateHeader(useDateHeader); httpConfig.setSendServerVersion(useServerHeader); httpConfig.setMinResponseDataRate(minResponseDataPerSecond.toBytes()); httpConfig.setMinRequestDataRate(minRequestDataPerSecond.toBytes()); if (useForwardedHeaders) { httpConfig.addCustomizer(new ForwardedRequestCustomizer()); } return httpConfig; }
httpConfig.addCustomizer( new ForwardedRequestCustomizer() ); httpConfig.setSecureScheme("https"); httpConfig.setSecurePort(httpsPort);
@Override public Customizer createCustomizer() { return new ForwardedRequestCustomizer(); } }
@Override protected void extendHTTPConfig(HttpConfiguration https_config) { https_config.addCustomizer(new ForwardedRequestCustomizer()); }
private static HttpConnectionFactory createHttpConnectionFactory() { HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.setSecureScheme("https"); httpConfig.addCustomizer(new ForwardedRequestCustomizer()); return new HttpConnectionFactory(httpConfig); }
@NotNull @Override public Connector createConnector(@NotNull Server server) { final HttpConfiguration config = new HttpConfiguration(); if (forwarded) { config.addCustomizer(new ForwardedRequestCustomizer()); } final ServerConnector http = new ServerConnector(server, new HttpConnectionFactory(config)); http.setPort(port); http.setHost(host); http.setIdleTimeout(30000); return http; } }
protected void createConnector() { HttpConfiguration httpConfig = new HttpConfiguration(); httpConfig.addCustomizer(new ForwardedRequestCustomizer()); int request_header_size = Integer.getInteger(WEBAPP_REQUEST_HEADER_SIZE, WEBAPP_REQUEST_HEADER_SIZE_DEFAULT); int response_header_size = Integer.getInteger(WEBAPP_RESPONSE_HEADER_SIZE, WEBAPP_RESPONSE_HEADER_SIZE_DEFAULT); int output_buffer_size = Integer.getInteger(WEBAPP_OUTPUT_BUFFER_SIZE, WEBAPP_OUTPUT_BUFFER_SIZE_DEFAULT); int header_cache_size = Integer.getInteger(WEBAPP_HEADER_CACHE_SIZE, WEBAPP_HEADER_CACHE_SIZE_DEFAULT); httpConfig.setRequestHeaderSize(request_header_size * HEADER_SIZE_BASE); httpConfig.setResponseHeaderSize(response_header_size * HEADER_SIZE_BASE); httpConfig.setOutputBufferSize(output_buffer_size * HEADER_SIZE_BASE); httpConfig.setHeaderCacheSize(header_cache_size * HEADER_SIZE_BASE); ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(httpConfig)); port = Integer.getInteger(WEBAPP_HTTP_PORT_PROPERTY, WEBAPP_HTTP_PORT_DEFAULT); connector.setPort(port); server.addConnector(connector); }
@Override public void customize(final Server server) { final Collection<HttpConnectionFactory> httpConnectionFactories = serverConnectionFactories(server, HttpConnectionFactory.class); httpConnectionFactories.forEach(httpConnectionFactory -> { final HttpConfiguration httpConfiguration = httpConnectionFactory.getHttpConfiguration(); httpConfiguration.addCustomizer(new ForwardedRequestCustomizer()); }); } }