Java 类org.springframework.boot.context.embedded.jetty.JettyServerCustomizer 实例源码
项目:https-github.com-g0t4-jenkins2-course-spring-boot
文件:ServerProperties.java
private void customizeConnectionTimeout(
JettyEmbeddedServletContainerFactory factory,
final int connectionTimeout) {
factory.addServerCustomizers(new JettyServerCustomizer() {
@Override
public void customize(Server server) {
for (org.eclipse.jetty.server.Connector connector : server
.getConnectors()) {
if (connector instanceof AbstractConnector) {
((AbstractConnector) connector)
.setIdleTimeout(connectionTimeout);
}
}
}
});
}
项目:citizenship-appointment-server
文件:AppConfig.java
@Bean
public EmbeddedServletContainerCustomizer disableServerHeader() {
return container -> {
if (container instanceof JettyEmbeddedServletContainerFactory) {
((JettyEmbeddedServletContainerFactory) container).addServerCustomizers(new JettyServerCustomizer() {
@Override
public void customize(Server server) {
for (Connector connector : server.getConnectors()) {
if (connector instanceof ServerConnector) {
HttpConnectionFactory connectionFactory = connector.getConnectionFactory(HttpConnectionFactory.class);
connectionFactory.getHttpConfiguration().setSendServerVersion(false);
}
}
}
});
}
};
}
项目:nakadi
文件:JettyConfig.java
@Bean
public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(
@Value("${server.port:8080}") final String port,
@Value("${jetty.threadPool.maxThreads:200}") final String maxThreads,
@Value("${jetty.threadPool.minThreads:8}") final String minThreads,
@Value("${jetty.threadPool.idleTimeout:60000}") final String idleTimeout) {
final JettyEmbeddedServletContainerFactory factory =
new JettyEmbeddedServletContainerFactory(Integer.valueOf(port));
factory.addServerCustomizers((JettyServerCustomizer) server -> {
final QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class);
threadPool.setMaxThreads(Integer.valueOf(maxThreads));
threadPool.setMinThreads(Integer.valueOf(minThreads));
threadPool.setIdleTimeout(Integer.valueOf(idleTimeout));
final GzipHandler gzipHandler = new GzipHandler();
gzipHandler.setHandler(server.getHandler());
gzipHandler.setSyncFlush(true);
server.setHandler(gzipHandler);
});
return factory;
}
项目:data-prep
文件:JettyConfiguration.java
@Override
public Collection<JettyServerCustomizer> getServerCustomizers() {
Collection<JettyServerCustomizer> jettyServerCustomizers = super.getServerCustomizers();
jettyServerCustomizers.add(server -> {
// Customize the connection pool used by Jetty for very large dataset
// which takes more than 30s to be rendered
QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class);
threadPool.setMaxThreads(Integer.valueOf(maxThreads));
threadPool.setMinThreads(Integer.valueOf(minThreads));
threadPool.setIdleTimeout(Integer.valueOf(idleTimeout));
for (Connector connector : server.getConnectors()) {
if (connector instanceof ServerConnector) {
((ServerConnector) connector).setIdleTimeout(Long.parseLong(idleTimeout));
}
}
});
return jettyServerCustomizers;
}
项目:moneta
文件:MonetaSpringBootApplication.java
@Bean
public EmbeddedServletContainerFactory servletContainer() {
JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory();
factory.addServerCustomizers(new JettyServerCustomizer() {
public void customize(final Server server) {
// Tweak the connection pool used by Jetty to handle incoming
// HTTP connections
Integer localServerMaxThreads = deriveValue(serverMaxThreads,
DEFAULT_SERVER_MAX_THREADS);
Integer localServerMinThreads = deriveValue(serverMinThreads,
DEFAULT_SERVER_MIN_THREADS);
Integer localServerIdleTimeout = deriveValue(serverIdleTimeout,
DEFAULT_SERVER_IDLE_TIMEOUT);
logger.info("Container Max Threads={}", localServerMaxThreads);
logger.info("Container Min Threads={}", localServerMinThreads);
logger.info("Container Idle Timeout={}", localServerIdleTimeout);
final QueuedThreadPool threadPool = server.getBean(QueuedThreadPool.class);
threadPool.setMaxThreads(Integer.valueOf(localServerMaxThreads));
threadPool.setMinThreads(Integer.valueOf(localServerMinThreads));
threadPool.setIdleTimeout(Integer.valueOf(localServerIdleTimeout));
}
});
return factory;
}
项目:tip
文件:JettyWebConfig.java
@Bean
public EmbeddedServletContainerFactory servletContainer(SslProperties properties) {
JettyEmbeddedServletContainerFactory jetty = new JettyEmbeddedServletContainerFactory() {
@Override
protected void postProcessWebAppContext(WebAppContext webAppContext) {
// 所有请求都必须为 Https 协议
ConstraintSecurityHandler securityHandler = new ConstraintSecurityHandler();
ConstraintMapping mapping = new ConstraintMapping();
Constraint constraint = new Constraint();
constraint.setDataConstraint(Constraint.DC_CONFIDENTIAL);
mapping.setConstraint(constraint);
mapping.setPathSpec("/*");
securityHandler.addConstraintMapping(mapping);
webAppContext.setSecurityHandler(securityHandler);
}
};
jetty.addServerCustomizers(new JettyServerCustomizer() {
@Override
public void customize(Server server) {
// 移除Spring Boot 生成的 Connector
int httpPort = 80;
Connector[] connectors = server.getConnectors();
for (Connector connector : connectors) {
if (connector instanceof ServerConnector) {
httpPort = ((ServerConnector) connector).getPort();
}
server.removeConnector(connector);
}
// 配置 Http 协议的 Connector
HttpConfiguration httpConfig = new HttpConfiguration();
// 重定向
httpConfig.setSecureScheme(properties.getScheme());
httpConfig.setSecurePort(properties.getPort());
httpConfig.addCustomizer(new SecureRequestCustomizer());
ServerConnector httpConnector = new ServerConnector(server, new HttpConnectionFactory(httpConfig));
httpConnector.setPort(httpPort);
server.addConnector(httpConnector);
// 配置 Https 协议的 Connector
HttpConfiguration httpsConfig = new HttpConfiguration(httpConfig);
httpsConfig.addCustomizer(new SecureRequestCustomizer());
HttpConnectionFactory connectionFactory = new HttpConnectionFactory(httpsConfig);
SslContextFactory sslContextFactory = new SslContextFactory();
File keystoreFile = new File(properties.getKeystore());
if (keystoreFile.exists()) {
sslContextFactory.setKeyStorePath(properties.getKeystore());
sslContextFactory.setKeyStorePassword(properties.getKeystorePassword());
}
SslConnectionFactory sslConnectionFactory = new SslConnectionFactory(sslContextFactory,
HttpVersion.HTTP_1_1.asString());
ServerConnector serverConnector = new ServerConnector(server, sslConnectionFactory, connectionFactory);
serverConnector.setPort(properties.getPort());
server.addConnector(serverConnector);
}
});
return jetty;
}
项目:para
文件:ParaServer.java
/**
* @return Jetty config bean
*/
@Bean
public EmbeddedServletContainerFactory jettyConfigBean() {
JettyEmbeddedServletContainerFactory jef = new JettyEmbeddedServletContainerFactory();
jef.addServerCustomizers(new JettyServerCustomizer() {
public void customize(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) {
HttpConfiguration httpConfiguration = dcf.getHttpConfiguration();
httpConfiguration.addCustomizer(new ForwardedRequestCustomizer());
}
// Disable Jetty version header
dcf.getHttpConfiguration().setSendServerVersion(false);
}
}
}
}
});
int defaultPort = NumberUtils.toInt(System.getProperty("jetty.http.port", "8080"));
jef.setPort(NumberUtils.toInt(System.getProperty("server.port"), defaultPort));
logger.info("Listening on port {}...", jef.getPort());
return jef;
}