Home / Class/ UnsafeTrustManagerWrapper Class — netty Architecture

UnsafeTrustManagerWrapper Class — netty Architecture

Architecture documentation for the UnsafeTrustManagerWrapper class in OpenSslX509TrustManagerWrapper.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  3ffb9966_9aae_2fb8_003e_ddc6bae719df["UnsafeTrustManagerWrapper"]
  aab5e489_b7bf_dd84_3402_45ce1263057d["OpenSslX509TrustManagerWrapper.java"]
  3ffb9966_9aae_2fb8_003e_ddc6bae719df -->|defined in| aab5e489_b7bf_dd84_3402_45ce1263057d
  672f0be7_5ac9_f17d_6796_54880255a410["UnsafeTrustManagerWrapper()"]
  3ffb9966_9aae_2fb8_003e_ddc6bae719df -->|method| 672f0be7_5ac9_f17d_6796_54880255a410
  463d6108_e8bd_7ddd_2873_f2475a37cfea["X509TrustManager()"]
  3ffb9966_9aae_2fb8_003e_ddc6bae719df -->|method| 463d6108_e8bd_7ddd_2873_f2475a37cfea

Relationship Graph

Source Code

handler/src/main/java/io/netty/handler/ssl/OpenSslX509TrustManagerWrapper.java lines 164–194

    private static final class UnsafeTrustManagerWrapper implements TrustManagerWrapper {
        private final long spiOffset;
        private final long tmOffset;

        UnsafeTrustManagerWrapper(long spiOffset, long tmOffset) {
            this.spiOffset = spiOffset;
            this.tmOffset = tmOffset;
        }

        @Override
        public X509TrustManager wrapIfNeeded(X509TrustManager manager) {
            if (!(manager instanceof X509ExtendedTrustManager)) {
                try {
                    SSLContext ctx = newSSLContext();
                    ctx.init(null, new TrustManager[] { manager }, null);
                    Object spi = PlatformDependent.getObject(ctx, spiOffset);
                    if (spi != null) {
                        Object tm = PlatformDependent.getObject(spi, tmOffset);
                        if (tm instanceof X509ExtendedTrustManager) {
                            return (X509TrustManager) tm;
                        }
                    }
                } catch (NoSuchAlgorithmException | NoSuchProviderException | KeyManagementException e) {
                    // This should never happen as we did the same in the static block
                    // before.
                    PlatformDependent.throwException(e);
                }
            }
            return manager;
        }
    }

Frequently Asked Questions

What is the UnsafeTrustManagerWrapper class?
UnsafeTrustManagerWrapper is a class in the netty codebase, defined in handler/src/main/java/io/netty/handler/ssl/OpenSslX509TrustManagerWrapper.java.
Where is UnsafeTrustManagerWrapper defined?
UnsafeTrustManagerWrapper is defined in handler/src/main/java/io/netty/handler/ssl/OpenSslX509TrustManagerWrapper.java at line 164.

Analyze Your Own Codebase

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

Try Supermodel Free