Home / Type/ OpenSslInternalSession Type — netty Architecture

OpenSslInternalSession Type — netty Architecture

Architecture documentation for the OpenSslInternalSession type/interface in OpenSslInternalSession.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  ae106a26_dc07_8875_aaab_a4768dd865b1["OpenSslInternalSession"]
  c5e5aa8e_7eb8_8079_003d_af3e1db8eb5a["OpenSslInternalSession.java"]
  ae106a26_dc07_8875_aaab_a4768dd865b1 -->|defined in| c5e5aa8e_7eb8_8079_003d_af3e1db8eb5a
  style ae106a26_dc07_8875_aaab_a4768dd865b1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/OpenSslInternalSession.java lines 26–92

interface OpenSslInternalSession extends OpenSslSession {

    /**
     * Called on a handshake session before being exposed to a {@link javax.net.ssl.TrustManager}.
     * Session data must be cleared by this call.
     */
    void prepareHandshake();

    /**
     * Return the {@link OpenSslSessionId} that can be used to identify this session.
     */
    OpenSslSessionId sessionId();

    /**
     * Set the local certificate chain that is used. It is not expected that this array will be changed at all
     * and so its ok to not copy the array.
     */
    void setLocalCertificate(Certificate[] localCertificate);

    /**
     * Set the details for the session which might come from a cache.
     *
     * @param creationTime the time at which the session was created.
     * @param lastAccessedTime the time at which the session was last accessed via the session infrastructure (cache).
     * @param id the {@link OpenSslSessionId}
     * @param keyValueStorage the key value store. See {@link #keyValueStorage()}.
     */
    void setSessionDetails(long creationTime, long lastAccessedTime, OpenSslSessionId id,
                           Map<String, Object> keyValueStorage);

    /**
     * Return the underlying {@link Map} that is used by the following methods:
     *
     * <ul>
     *     <li>{@link #putValue(String, Object)}</li>
     *     <li>{@link #removeValue(String)}</li>
     *     <li>{@link #getValue(String)}</li>
     *     <li> {@link #getValueNames()}</li>
     * </ul>
     *
     * The {@link Map} must be thread-safe!
     *
     * @return storage
     */
    Map<String, Object> keyValueStorage();

    /**
     * Set the last access time which will be returned by {@link #getLastAccessedTime()}.
     *
     * @param time the time
     */
    void setLastAccessedTime(long time);

    /**
     * Expand (or increase) the value returned by {@link #getApplicationBufferSize()} if necessary.
     * <p>
     * This is only called in a synchronized block, so no need to use atomic operations.
     * @param packetLengthDataOnly The packet size which exceeds the current {@link #getApplicationBufferSize()}.
     */
    void tryExpandApplicationBufferSize(int packetLengthDataOnly);

    /**
     * Called once the handshake has completed.
     */
    void handshakeFinished(byte[] id, String cipher, String protocol, byte[] peerCertificate,
                           byte[][] peerCertificateChain, long creationTime, long timeout) throws SSLException;
}

Frequently Asked Questions

What is the OpenSslInternalSession type?
OpenSslInternalSession is a type/interface in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslInternalSession.java.
Where is OpenSslInternalSession defined?
OpenSslInternalSession is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslInternalSession.java at line 26.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free