Interface SocketConfiguration

All Known Subinterfaces:
ServerConfiguration

public interface SocketConfiguration
The SocketConfiguration configures a port to listen on and its associated server socket parameters.
  • Field Details

    • DEFAULT_BACKLOG_SIZE

      static final int DEFAULT_BACKLOG_SIZE
      The default backlog size to configure the server sockets with if no other value is provided.
      See Also:
  • Method Details

    • builder

      static SocketConfiguration.Builder builder()
      Creates a builder of SocketConfiguration class.
      Returns:
      a builder
    • create

      static SocketConfiguration create(String name)
      Create a default named configuration.
      Parameters:
      name - name of the socket
      Returns:
      a new socket configuration with defaults
    • name

      default String name()
      Name of this socket. Default to WebServer.DEFAULT_SOCKET_NAME for the main and default server socket. All other sockets must be named.
      Returns:
      name of this socket
    • port

      int port()
      Returns a server port to listen on with the server socket. If port is 0 then any available ephemeral port will be used.
      Returns:
      the server port of the server socket
    • bindAddress

      InetAddress bindAddress()
      Returns local address where the server listens on with the server socket. If null then listens an all local addresses.
      Returns:
      an address to bind with the server socket; null for all local addresses
    • backlog

      int backlog()
      Returns a maximum length of the queue of incoming connections on the server socket.

      Default value is DEFAULT_BACKLOG_SIZE.

      Returns:
      a maximum length of the queue of incoming connections
    • timeoutMillis

      int timeoutMillis()
      Returns a server socket timeout in milliseconds or 0 for an infinite timeout.
      Returns:
      a server socket timeout in milliseconds or 0
    • receiveBufferSize

      int receiveBufferSize()
      Returns proposed value of the TCP receive window that is advertised to the remote peer on the server socket.

      If 0 then use implementation default.

      Returns:
      a buffer size in bytes of the server socket or 0
    • tls

      Return a WebServerTls containing server TLS configuration. When empty Optional is returned no TLS should be configured.
      Returns:
      web server tls configuration
    • ssl

      @Deprecated(since="2.3.1", forRemoval=true) SSLContext ssl()
      Deprecated, for removal: This API element is subject to removal in a future version.
      use tls().sslContext() instead. This method will be removed at 3.0.0 version.
      Returns a SSLContext to use with the server socket. If not null then the server enforces an SSL communication.
      Returns:
      a SSL context to use
    • enabledSslProtocols

      @Deprecated(since="2.3.1", forRemoval=true) Set<String> enabledSslProtocols()
      Deprecated, for removal: This API element is subject to removal in a future version.
      use tls().enabledTlsProtocols() instead. This method will be removed at 3.0.0 version.
      Returns the SSL protocols to enable, or null to enable the default protocols.
      Returns:
      the SSL protocols to enable
    • allowedCipherSuite

      @Deprecated(since="2.3.1", forRemoval=true) Set<String> allowedCipherSuite()
      Deprecated, for removal: This API element is subject to removal in a future version.
      use tls().cipherSuite() instead. This method will be removed at 3.0.0 version.
      Return the allowed cipher suite of the TLS. If empty set is returned, the default cipher suite is used.
      Returns:
      the allowed cipher suite
    • clientAuth

      @Deprecated(since="2.3.1", forRemoval=true) ClientAuthentication clientAuth()
      Deprecated, for removal: This API element is subject to removal in a future version.
      use tls().clientAuth() instead. This method will be removed at 3.0.0 version.
      Whether to require client authentication or not.
      Returns:
      client authentication
    • enabled

      default boolean enabled()
      Whether this socket is enabled (and will be opened on server startup), or disabled (and ignored on server startup).
      Returns:
      true for enabled socket, false for socket that should not be opened
    • maxHeaderSize

      int maxHeaderSize()
      Maximal size of all headers combined.
      Returns:
      size in bytes
    • maxInitialLineLength

      int maxInitialLineLength()
      Maximal length of the initial HTTP line.
      Returns:
      length
    • maxChunkSize

      int maxChunkSize()
      Maximal size of a single chunk of received data.
      Returns:
      chunk size
    • validateHeaders

      boolean validateHeaders()
      Whether to validate HTTP header names. When set to true, we make sure the header name is a valid string
      Returns:
      true if headers should be validated
    • enableCompression

      default boolean enableCompression()
      Whether to allow negotiation for a gzip/deflate content encoding. Supporting HTTP compression may interfere with application that use streaming and other similar features. Thus, it defaults to false.
      Returns:
      compression flag
    • maxPayloadSize

      default long maxPayloadSize()
      Maximum size allowed for an HTTP payload in a client request. A negative value indicates that there is no maximum set.
      Returns:
      maximum payload size
    • backpressureBufferSize

      default long backpressureBufferSize()
      Maximum length of the response data sending buffer can keep without flushing. Depends on `backpressure-policy` what happens if max buffer size is reached.
      Returns:
      maximum non-flushed data Netty can buffer until backpressure is applied
    • backpressureStrategy

      default BackpressureStrategy backpressureStrategy()
      Strategy for applying backpressure to the reactive stream of response data. Switched default to BackpressureStrategy.AUTO_FLUSH since 3.1.1.
      Returns:
      strategy identifier for applying backpressure
    • continueImmediately

      default boolean continueImmediately()
      When true WebServer answers with 100 continue immediately, not waiting for user to actually request the data. False is default value.
      Returns:
      strategy identifier for applying backpressure
    • initialBufferSize

      int initialBufferSize()
      Initial size of the buffer used to parse HTTP line and headers.
      Returns:
      initial size of the buffer
    • requestedUriDiscoveryTypes

      Discovery types to identify requested URI.
      Returns:
      list with supported types, will always contain at least SocketConfiguration.RequestedUriDiscoveryType.HOST.
    • requestedUriDiscoveryEnabled

      boolean requestedUriDiscoveryEnabled()
      Returns:
      whether requested URI discovery is enabled.
    • trustedProxies

      AllowList trustedProxies()
      The allow list for trusted proxies.
      Returns:
      allow list for trusted proxies
    • maxUpgradeContentLength

      default int maxUpgradeContentLength()
      Maximum length of the content of an upgrade request.
      Returns:
      maximum length of the content of an upgrade request
    • connectionIdleTimeout

      default int connectionIdleTimeout()
      Timeout seconds after which any idle connection will be automatically closed by the server.
      Returns:
      idle connection timeout in seconds