Package org.apache.tomcat.util.net

## Class ServletConnectionImpl

- java.lang.Object
- - org.apache.tomcat.util.net.ServletConnectionImpl

- All Implemented Interfaces:
    `ServletConnection`

      public class ServletConnectionImpl
      extends Object
      implements ServletConnection

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ServletConnectionImpl​(String connectionId, String protocol, String protocolConnectionId, boolean secure)` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `String` | `getConnectionId()` | Obtain a unique (within the lifetime of the JVM) identifier string for the network connection to the JVM that is being used for the `ServletRequest` from which this `ServletConnection` was obtained.
    `String` | `getProtocol()` | Obtain the name of the protocol as presented to the server after the removal, if present, of any TLS or similar encryption.
    `String` | `getProtocolConnectionId()` | Obtain the connection identifier for the network connection to the server that is being used for the `ServletRequest` from which this `ServletConnection` was obtained as defined by the protocol in use.
    `boolean` | `isSecure()` | Determine whether or not the incoming network connection to the server used encryption or not.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ServletConnectionImpl

          public ServletConnectionImpl​(String connectionId,
                                       String protocol,
                                       String protocolConnectionId,
                                       boolean secure)

  - ### Method Detail

    - #### getConnectionId

          public String getConnectionId()

      Description copied from interface: `jakarta.servlet.ServletConnection`
      Obtain a unique (within the lifetime of the JVM) identifier string for the network connection to the JVM that is being used for the `ServletRequest` from which this `ServletConnection` was obtained.

      There is no defined format for this string. The format is implementation dependent.

      Specified by:
        `getConnectionId` in interface `ServletConnection`
      Returns:
        A unique identifier for the network connection

    - #### getProtocol

          public String getProtocol()

      Description copied from interface: `jakarta.servlet.ServletConnection`
      Obtain the name of the protocol as presented to the server after the removal, if present, of any TLS or similar encryption. This may not be the same as the protocol seen by the application. For example, a reverse proxy may present AJP whereas the application will see HTTP 1.1.

      If the protocol has an entry in the IANA registry for ALPN names then the identification sequence, in string form, must be returned. Registered identification sequences MUST only be used for the associated protocol. Return values for other protocols are implementation dependent. Unknown protocols should return the string "unknown".

      Specified by:
        `getProtocol` in interface `ServletConnection`
      Returns:
        The name of the protocol presented to the server after decryption of TLS, or similar encryption, if any.

    - #### getProtocolConnectionId

          public String getProtocolConnectionId()

      Description copied from interface: `jakarta.servlet.ServletConnection`
      Obtain the connection identifier for the network connection to the server that is being used for the `ServletRequest` from which this `ServletConnection` was obtained as defined by the protocol in use. Note that some protocols do not define such an identifier.

      Examples of protocol provided connection identifiers include:

      HTTP 1.x
        None, so the empty string should be returned
      HTTP 2
        None, so the empty string should be returned
      HTTP 3
        The QUIC connection ID
      AJP
        None, so the empty string should be returned
      Specified by:
        `getProtocolConnectionId` in interface `ServletConnection`
      Returns:
        The connection identifier if one is defined, otherwise an empty string

    - #### isSecure

          public boolean isSecure()

      Description copied from interface: `jakarta.servlet.ServletConnection`
      Determine whether or not the incoming network connection to the server used encryption or not. Note that where a reverse proxy is used, the application may have a different view as to whether encryption is being used due to the use of headers like `X-Forwarded-Proto`.
      Specified by:
        `isSecure` in interface `ServletConnection`
      Returns:
        `true` if the incoming network connection used encryption, otherwise `false`