Package ch.rswk.meta.engine
Class HttpService
java.lang.Object
com.google.common.util.concurrent.AbstractExecutionThreadService
ch.rswk.meta.engine.AbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>
ch.rswk.meta.engine.HttpService
- All Implemented Interfaces:
EngineServices.ConfigurableService<HttpService.HttpServiceConfig>,EngineServices.InfoProvidingService,com.google.common.util.concurrent.Service
@Singleton
public class HttpService
extends AbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>
HttpService uses a embedded Jetty Server with
secure defaults and configuration options for TLS,
Caching,
CORS,
CSP, exclude-/include access lists and
more.
Custom HttpService.FilterConfig, HttpService.ServletConfig can be injected. HttpService.JerseyConfig can be used to inject REST-like API resources
using Jersey.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classstatic final recordstatic final recordstatic final recordstatic final recordstatic final recordHttpServiceHeaderCorsConfig is used to configure aCrossOriginFilter.static final recordHttpServiceHeaderCorsConfig is used to configure aHeaderPatternRule.static final recordstatic final recordstatic final recordNested classes/interfaces inherited from interface com.google.common.util.concurrent.Service
com.google.common.util.concurrent.Service.Listener, com.google.common.util.concurrent.Service.State -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Stringprivate static final Stringprivate static final Stringprivate static final Stringprivate static final StringSee JDK Providers Documentation and Security/Server Side TLS compatibility (Intermediate).private final Set<HttpService.FilterConfig> private static final org.slf4j.Loggerprivate static final Stringprivate static final Stringprivate org.eclipse.jetty.server.Serverprivate final Set<HttpService.ServletConfig> private org.eclipse.jetty.util.ssl.SslContextFactory.Serverprivate static final org.eclipse.jetty.rewrite.handler.HeaderPatternRuleprivate final org.eclipse.jetty.util.thread.QueuedThreadPoolprivate static final org.eclipse.jetty.rewrite.handler.HeaderPatternRuleprivate static final org.eclipse.jetty.rewrite.handler.HeaderPatternRuleFields inherited from class ch.rswk.meta.engine.AbstractEngineExecutionThreadService
runtime -
Constructor Summary
ConstructorsConstructorDescriptionHttpService(HttpService.HttpServiceConfig config, Set<HttpService.FilterConfig> filterConfigs, EngineRuntime runtime, Set<HttpService.ServletConfig> servletConfigs, org.eclipse.jetty.util.thread.QueuedThreadPool threadPool) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaddConnector(int port) private voidprivate Optional<OffsetDateTime> Optional<com.fasterxml.jackson.databind.node.ObjectNode> private org.eclipse.jetty.server.HttpConfigurationprivate static org.eclipse.jetty.rewrite.handler.RewriteHandlernewRewriteHandler(@Nullable HttpService.HttpServiceHeaderConfig headerConfig, @Nullable Map<String, String> redirect) private static org.eclipse.jetty.util.ssl.SslContextFactory.Serverprotected voidrun()protected voidshutDown()protected voidstartUp()protected voidMethods inherited from class ch.rswk.meta.engine.AbstractEngineExecutionThreadService
configClass, configReference, onConfigWatcherNotification, serviceId, serviceNameMethods inherited from class com.google.common.util.concurrent.AbstractExecutionThreadService
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, executor, failureCause, isRunning, startAsync, state, stopAsync, toStringMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface ch.rswk.meta.engine.EngineServices.ConfigurableService
config, handleConfigWatcherNotification, onConfigChanged
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
DEFAULT_SSL_CIPHER_SUITES
See JDK Providers Documentation and Security/Server Side TLS compatibility (Intermediate). -
DEFAULT_SSL_PROTOCOLS
-
ANY_PATH_PATTERN
- See Also:
-
CSP_HEADER
- See Also:
-
CSP_HEADER_FRAME_ANCESTORS
- See Also:
-
CSP_HEADER_DEFAULT_FRAME_ANCESTORS
- See Also:
-
DEFAULT_CACHE_CONTROL
- See Also:
-
REQUEST_LOG_FILE
- See Also:
-
REQUEST_LOG_FORMAT
- See Also:
-
STS_HEADER
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule STS_HEADER -
WORKER_HEADER
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule WORKER_HEADER -
X_CONTENT_HEADER
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule X_CONTENT_HEADER -
filterConfigs
-
servletConfigs
-
threadPool
private final org.eclipse.jetty.util.thread.QueuedThreadPool threadPool -
server
private org.eclipse.jetty.server.Server server -
sslContext
private org.eclipse.jetty.util.ssl.SslContextFactory.Server sslContext
-
-
Constructor Details
-
HttpService
@Inject public HttpService(HttpService.HttpServiceConfig config, Set<HttpService.FilterConfig> filterConfigs, EngineRuntime runtime, Set<HttpService.ServletConfig> servletConfigs, org.eclipse.jetty.util.thread.QueuedThreadPool threadPool)
-
-
Method Details
-
getServiceInfo
-
getCertificateNotAfterDate
-
run
-
triggerShutdown
protected void triggerShutdown()- Overrides:
triggerShutdownin classcom.google.common.util.concurrent.AbstractExecutionThreadService
-
startUp
- Overrides:
startUpin classAbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>- Throws:
Exception
-
addConnector
private void addConnector(int port) -
newHttpConfiguration
private org.eclipse.jetty.server.HttpConfiguration newHttpConfiguration() -
newSslContextFactory
private static org.eclipse.jetty.util.ssl.SslContextFactory.Server newSslContextFactory(HttpService.HttpServiceSslConfig ssl) -
forgeHandlers
private void forgeHandlers() -
newRewriteHandler
private static org.eclipse.jetty.rewrite.handler.RewriteHandler newRewriteHandler(@Nullable HttpService.HttpServiceHeaderConfig headerConfig, @Nullable Map<String, String> redirect) -
shutDown
- Overrides:
shutDownin classAbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>- Throws:
Exception
-