Java Code Examples for org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory#addServerCustomizers()
The following examples show how to use
org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory#addServerCustomizers() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: DSSSpringApplication.java From DataSphereStudio with Apache License 2.0 | 6 votes |
@Bean public WebServerFactoryCustomizer<JettyServletWebServerFactory> jettyFactoryCustomizer() { return new WebServerFactoryCustomizer<JettyServletWebServerFactory>() { public void customize(JettyServletWebServerFactory jettyServletWebServerFactory) { jettyServletWebServerFactory.addServerCustomizers(new JettyServerCustomizer() { public void customize(Server server) { Handler[] childHandlersByClass = server.getChildHandlersByClass(WebAppContext.class); final WebAppContext webApp = (WebAppContext) childHandlersByClass[0]; FilterHolder filterHolder = new FilterHolder(CharacterEncodingFilter.class); filterHolder.setInitParameter("encoding", Configuration.BDP_ENCODING().getValue()); filterHolder.setInitParameter("forceEncoding", "true"); webApp.addFilter(filterHolder, "/*", EnumSet.allOf(DispatcherType.class)); BDPJettyServerHelper.setupRestApiContextHandler(webApp); if(ServerConfiguration.BDP_SERVER_SOCKET_MODE().getValue()) { BDPJettyServerHelper.setupControllerServer(webApp); } if(!ServerConfiguration.BDP_SERVER_DISTINCT_MODE().getValue()) { BDPJettyServerHelper.setupWebAppContext(webApp); } } }); } }; }
Example 2
Source File: JettyWebServerConfiguration.java From tutorials with MIT License | 6 votes |
/** * Customise the Jetty web server to automatically decompress requests. */ @Bean public JettyServletWebServerFactory jettyServletWebServerFactory() { JettyServletWebServerFactory factory = new JettyServletWebServerFactory(); factory.addServerCustomizers(server -> { GzipHandler gzipHandler = new GzipHandler(); // Enable request decompression gzipHandler.setInflateBufferSize(MIN_BYTES); gzipHandler.setHandler(server.getHandler()); HandlerCollection handlerCollection = new HandlerCollection(gzipHandler); server.setHandler(handlerCollection); }); return factory; }
Example 3
Source File: LogSearchWebServerCustomizer.java From ambari-logsearch with Apache License 2.0 | 5 votes |
@Override public void customize(JettyServletWebServerFactory webServerFactory) { serverProperties.getServlet().getSession().setTimeout(Duration.ofMinutes(logSearchHttpConfig.getSessionTimeout())); serverProperties.getServlet().getSession().getCookie().setName(LOGSEARCH_SESSION_ID); if ("https".equals(logSearchHttpConfig.getProtocol())) { sslConfigurer.ensureStorePasswords(); sslConfigurer.loadKeystore(); webServerFactory.addServerCustomizers((JettyServerCustomizer) server -> { SslContextFactory sslContextFactory = sslConfigurer.getSslContextFactory(); ServerConnector sslConnector = new ServerConnector(server, sslContextFactory); sslConnector.setPort(logSearchHttpConfig.getHttpsPort()); server.setConnectors(new Connector[]{sslConnector}); }); } else { webServerFactory.setPort(logSearchHttpConfig.getHttpPort()); } if (logSearchHttpConfig.isUseAccessLogs()) { webServerFactory.addServerCustomizers((JettyServerCustomizer) server -> { LoggerContext context = (LoggerContext) LogManager.getContext(false); Configuration configuration = context.getConfiguration(); String logDir = configuration.getStrSubstitutor().getVariableResolver().lookup("log-path"); String logFileNameSuffix = "logsearch-jetty-yyyy_mm_dd.request.log"; String logFileName = logDir == null ? logFileNameSuffix : Paths.get(logDir, logFileNameSuffix).toString(); NCSARequestLog requestLog = new NCSARequestLog(logFileName); requestLog.setAppend(true); requestLog.setExtended(false); requestLog.setLogTimeZone("GMT"); server.setRequestLog(requestLog); }); } }
Example 4
Source File: JettyITServerCustomizer.java From nifi-registry with Apache License 2.0 | 5 votes |
@Override public void customize(final JettyServletWebServerFactory factory) { LOGGER.info("Customizing Jetty server for integration tests..."); factory.addServerCustomizers((server) -> { final Ssl sslProperties = serverProperties.getSsl(); if (sslProperties != null) { createSslContextFactory(sslProperties); ServerConnector con = (ServerConnector) server.getConnectors()[0]; int existingConnectorPort = con.getLocalPort(); // create the http configuration final HttpConfiguration httpConfiguration = new HttpConfiguration(); httpConfiguration.setRequestHeaderSize(HEADER_BUFFER_SIZE); httpConfiguration.setResponseHeaderSize(HEADER_BUFFER_SIZE); // add some secure config final HttpConfiguration httpsConfiguration = new HttpConfiguration(httpConfiguration); httpsConfiguration.setSecureScheme("https"); httpsConfiguration.setSecurePort(existingConnectorPort); httpsConfiguration.addCustomizer(new SecureRequestCustomizer()); // build the connector with the endpoint identification algorithm set to null final ServerConnector httpsConnector = new ServerConnector(server, new SslConnectionFactory(createSslContextFactory(sslProperties), "http/1.1"), new HttpConnectionFactory(httpsConfiguration)); server.removeConnector(con); server.addConnector(httpsConnector); } }); LOGGER.info("JettyServer is customized"); }
Example 5
Source File: ParaServer.java From para with Apache License 2.0 | 4 votes |
/** * @return Jetty config bean */ @Bean public ServletWebServerFactory jettyConfigBean() { JettyServletWebServerFactory jef = new JettyServletWebServerFactory(); jef.addServerCustomizers((JettyServerCustomizer) (Server server) -> { if (Config.getConfigBoolean("access_log_enabled", true)) { // enable access log via Logback HandlerCollection handlers = new HandlerCollection(); for (Handler handler : server.getHandlers()) { handlers.addHandler(handler); } RequestLogHandler reqLogs = new RequestLogHandler(); reqLogs.setServer(server); RequestLogImpl rli = new RequestLogImpl(); rli.setResource("/logback-access.xml"); rli.setQuiet(true); rli.start(); reqLogs.setRequestLog(rli); handlers.addHandler(reqLogs); server.setHandler(handlers); } for (Connector y : server.getConnectors()) { for (ConnectionFactory cf : y.getConnectionFactories()) { if (cf instanceof HttpConnectionFactory) { HttpConnectionFactory dcf = (HttpConnectionFactory) cf; // support for X-Forwarded-Proto // redirect back to https if original request uses it if (Config.IN_PRODUCTION) { ForwardedRequestCustomizer frc = new ForwardedRequestCustomizer() { public void customize(Connector connector, HttpConfiguration config, Request request) { super.customize(connector, config, request); String cfProto = request.getHeader("CloudFront-Forwarded-Proto"); if (StringUtils.equalsIgnoreCase(cfProto, config.getSecureScheme())) { request.setScheme(cfProto); request.setSecure(true); } } }; HttpConfiguration httpConfiguration = dcf.getHttpConfiguration(); httpConfiguration.addCustomizer(frc); } // Disable Jetty version header dcf.getHttpConfiguration().setSendServerVersion(false); // Increase idle timeout dcf.getHttpConfiguration().setIdleTimeout(TimeUnit.MINUTES.toMillis(5)); } } } }); String contextPath = Config.getConfigParam("context_path", ""); if (StringUtils.length(contextPath) > 1 && contextPath.charAt(0) == '/') { jef.setContextPath(contextPath); } jef.setPort(getServerPort()); logger.info("Listening on port {}...", jef.getPort()); return jef; }