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 class
static final record
static final record
static final record
static final record
static final record
HttpServiceHeaderCorsConfig is used to configure aCrossOriginFilter
.static final record
HttpServiceHeaderCorsConfig is used to configure aHeaderPatternRule
.static final record
static final record
static final record
Nested 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 String
private static final String
private static final String
private static final String
private static final String
See JDK Providers Documentation and Security/Server Side TLS compatibility (Intermediate).private final Set
<HttpService.FilterConfig> private static final org.slf4j.Logger
private static final long
private static final int
private ScheduledFuture
<?> private static final String
private static final String
private org.eclipse.jetty.server.Server
private final Set
<HttpService.ServletConfig> private org.eclipse.jetty.util.ssl.SslContextFactory.Server
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule
private final org.eclipse.jetty.util.thread.QueuedThreadPool
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule
private static final org.eclipse.jetty.rewrite.handler.HeaderPatternRule
Fields 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 void
addConnector
(int port) private org.eclipse.jetty.server.Handler[]
private Optional
<OffsetDateTime> Optional
<com.fasterxml.jackson.databind.node.ObjectNode> private org.eclipse.jetty.server.HttpConfiguration
private static org.eclipse.jetty.server.Handler
newRewriteHandler
(@Nullable HttpService.HttpServiceHeaderConfig headerConfig, @Nullable Map<String, String> redirect) private static org.eclipse.jetty.util.ssl.SslContextFactory.Server
protected void
run()
protected void
shutDown()
protected void
startUp()
protected void
Methods inherited from class ch.rswk.meta.engine.AbstractEngineExecutionThreadService
configClass, configReference, serviceName
Methods inherited from class com.google.common.util.concurrent.AbstractExecutionThreadService
addListener, awaitRunning, awaitRunning, awaitRunning, awaitTerminated, awaitTerminated, awaitTerminated, executor, failureCause, isRunning, startAsync, state, stopAsync, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface ch.rswk.meta.engine.EngineServices.ConfigurableService
config, 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:
-
LOW_RESOURCES_MAX_LOW_TIME
private static final int LOW_RESOURCES_MAX_LOW_TIME- See Also:
-
LOW_RESOURCE_MAX_MEMORY
private static final long LOW_RESOURCE_MAX_MEMORY- 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 -
reloadHandle
-
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
-
startUp
- Overrides:
startUp
in classAbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>
- Throws:
Exception
-
addConnector
private void addConnector(int port) -
newSslContextFactory
private static org.eclipse.jetty.util.ssl.SslContextFactory.Server newSslContextFactory(HttpService.HttpServiceSslConfig ssl) -
newHttpConfiguration
private org.eclipse.jetty.server.HttpConfiguration newHttpConfiguration() -
forgeHandlers
private org.eclipse.jetty.server.Handler[] forgeHandlers() -
newRewriteHandler
private static org.eclipse.jetty.server.Handler newRewriteHandler(@Nullable HttpService.HttpServiceHeaderConfig headerConfig, @Nullable Map<String, String> redirect) -
triggerShutdown
protected void triggerShutdown()- Overrides:
triggerShutdown
in classcom.google.common.util.concurrent.AbstractExecutionThreadService
-
shutDown
- Overrides:
shutDown
in classAbstractEngineExecutionThreadService<HttpService.HttpServiceConfig>
- Throws:
Exception
-
run
- Specified by:
run
in classcom.google.common.util.concurrent.AbstractExecutionThreadService
- Throws:
Exception
-
getServiceInfo
-
getCertificateNotAfterDate
-