Class HttpConfiguration

java.lang.Object
io.quarkus.vertx.http.runtime.HttpConfiguration

@ConfigRoot(phase=RUN_TIME) public class HttpConfiguration extends Object
  • Field Details

    • auth

      public AuthRuntimeConfig auth
      Authentication configuration
    • corsEnabled

      @ConfigItem(name="cors") public boolean corsEnabled
      Enable the CORS filter.
    • port

      @ConfigItem(defaultValue="8080") public int port
      The HTTP port
    • testPort

      @ConfigItem(defaultValue="8081") public int testPort
      The HTTP port used to run tests
    • host

      @ConfigItem public String host
      The HTTP host

      In dev/test mode this defaults to localhost, in prod mode this defaults to 0.0.0.0

      Defaulting to 0.0.0.0 makes it easier to deploy Quarkus to container, however it is not suitable for dev/test mode as other people on the network can connect to your development machine.

    • testHost

      @ConfigItem public Optional<String> testHost
      Used when QuarkusIntegrationTest is meant to execute against an application that is already running and listening on the host specified by this property.
    • hostEnabled

      @ConfigItem(defaultValue="true") public boolean hostEnabled
      Enable listening to host:port
    • sslPort

      @ConfigItem(defaultValue="8443") public int sslPort
      The HTTPS port
    • testSslPort

      @ConfigItem(defaultValue="8444") public int testSslPort
      The HTTPS port used to run tests
    • testSslEnabled

      @ConfigItem public Optional<Boolean> testSslEnabled
      Used when QuarkusIntegrationTest is meant to execute against an application that is already running to configure the test to use SSL.
    • insecureRequests

      If insecure (i.e. http rather than https) requests are allowed. If this is enabled then http works as normal. redirect will still open the http port, but all requests will be redirected to the HTTPS port. disabled will prevent the HTTP port from opening at all.

      Default is enabled except when client auth is set to required (configured using quarkus.http.ssl.client-auth=required). In this case, the default is disabled.

    • http2

      @ConfigItem(defaultValue="true") public boolean http2
      If this is true (the default) then HTTP/2 will be enabled.

      Note that for browsers to be able to use it HTTPS must be enabled, and you must be running on JDK11 or above, as JDK8 does not support ALPN.

    • http2PushEnabled

      @ConfigItem(defaultValue="true") public boolean http2PushEnabled
      Enables or Disable the HTTP/2 Push feature. This setting can be used to disable server push. The server will not send a PUSH_PROMISE frame if it receives this parameter set to @{code false}.
    • cors

      public CORSConfig cors
      The CORS config
    • ssl

      public ServerSslConfig ssl
      The SSL config
    • staticResources

      public StaticResourcesConfig staticResources
      The Static Resources config
    • handle100ContinueAutomatically

      @ConfigItem(defaultValue="false", name="handle-100-continue-automatically") public boolean handle100ContinueAutomatically
      When set to true, the HTTP server automatically sends `100 CONTINUE` response when the request expects it (with the `Expect: 100-Continue` header).
    • ioThreads

      @ConfigItem public OptionalInt ioThreads
      The number if IO threads used to perform IO. This will be automatically set to a reasonable value based on the number of CPU cores if it is not provided. If this is set to a higher value than the number of Vert.x event loops then it will be capped at the number of event loops.

      In general this should be controlled by setting quarkus.vertx.event-loops-pool-size, this setting should only be used if you want to limit the number of HTTP io threads to a smaller number than the total number of IO threads.

    • limits

      public ServerLimitsConfig limits
      Server limits configuration
    • idleTimeout

      @ConfigItem(defaultValue="30M", name="idle-timeout") public Duration idleTimeout
      Http connection idle timeout
    • readTimeout

      @ConfigItem(defaultValue="60s", name="read-timeout") public Duration readTimeout
      Http connection read timeout for blocking IO. This is the maximum amount of time a thread will wait for data, before an IOException will be thrown and the connection closed.
    • body

      public BodyConfig body
      Request body related settings
    • encryptionKey

      @ConfigItem(name="auth.session.encryption-key") public Optional<String> encryptionKey
      The encryption key that is used to store persistent logins (e.g. for form auth). Logins are stored in a persistent cookie that is encrypted with AES-256 using a key derived from a SHA-256 hash of the key that is provided here.

      If no key is provided then an in-memory one will be generated, this will change on every restart though so it is not suitable for production environments. This must be more than 16 characters long for security reasons

    • soReusePort

      @ConfigItem public boolean soReusePort
      Enable socket reuse port (linux/macOs native transport only)
    • tcpQuickAck

      @ConfigItem public boolean tcpQuickAck
      Enable tcp quick ack (linux native transport only)
    • tcpCork

      @ConfigItem public boolean tcpCork
      Enable tcp cork (linux native transport only)
    • tcpFastOpen

      @ConfigItem public boolean tcpFastOpen
      Enable tcp fast open (linux native transport only)
    • acceptBacklog

      @ConfigItem(defaultValue="-1") public int acceptBacklog
      The accept backlog, this is how many connections can be waiting to be accepted before connections start being rejected
    • initialWindowSize

      @ConfigItem public OptionalInt initialWindowSize
      Set the SETTINGS_INITIAL_WINDOW_SIZE HTTP/2 setting. Indicates the sender's initial window size (in octets) for stream-level flow control. The initial value is 2^16-1 (65,535) octets.
    • domainSocket

      @ConfigItem(defaultValue="/var/run/io.quarkus.app.socket") public String domainSocket
      Path to a unix domain socket
    • domainSocketEnabled

      @ConfigItem public boolean domainSocketEnabled
      Enable listening to host:port
    • recordRequestStartTime

      @ConfigItem public boolean recordRequestStartTime
      If this is true then the request start time will be recorded to enable logging of total request time.

      This has a small performance penalty, so is disabled by default.

    • accessLog

      public AccessLogConfig accessLog
    • trafficShaping

      public TrafficShapingConfig trafficShaping
    • sameSiteCookie

      @ConfigItem public Map<String,SameSiteCookieConfig> sameSiteCookie
      Configuration that allows setting the same site attributes for cookies.
    • unhandledErrorContentTypeDefault

      @ConfigItem public Optional<HttpConfiguration.PayloadHint> unhandledErrorContentTypeDefault
      Provides a hint (optional) for the default content type of responses generated for the errors not handled by the application.

      If the client requested a supported content-type in request headers (e.g. "Accept: application/json", "Accept: text/html"), Quarkus will use that content type.

      Otherwise, it will default to the content type configured here.

    • filter

      Additional HTTP configuration per path
    • proxy

      public ProxyConfig proxy
  • Constructor Details

    • HttpConfiguration

      public HttpConfiguration()
  • Method Details

    • determinePort

      public int determinePort(LaunchMode launchMode)
    • determineSslPort

      public int determineSslPort(LaunchMode launchMode)