Home / Class/ ProxyHandlerTest Class — netty Architecture

ProxyHandlerTest Class — netty Architecture

Architecture documentation for the ProxyHandlerTest class in ProxyHandlerTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  9fb79ca3_5f09_8f6d_88de_27949a19edd9["ProxyHandlerTest"]
  8ee69b4d_9955_829a_96d0_8c943277a68d["ProxyHandlerTest.java"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|defined in| 8ee69b4d_9955_829a_96d0_8c943277a68d
  037d37a2_b859_6ac3_5e21_86c2e4bc7b9f["testItems()"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|method| 037d37a2_b859_6ac3_5e21_86c2e4bc7b9f
  86b7dca3_3682_01f2_85a6_0bc637648377["stopServers()"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|method| 86b7dca3_3682_01f2_85a6_0bc637648377
  255ec0eb_10ec_1a73_0b78_e00555aa4871["clearServerExceptions()"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|method| 255ec0eb_10ec_1a73_0b78_e00555aa4871
  090e8ae4_53fb_bf5d_c36d_b71d6a972d9a["test()"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|method| 090e8ae4_53fb_bf5d_c36d_b71d6a972d9a
  71c11e58_525b_a7e9_81fb_c37f14ec6229["checkServerExceptions()"]
  9fb79ca3_5f09_8f6d_88de_27949a19edd9 -->|method| 71c11e58_525b_a7e9_81fb_c37f14ec6229

Relationship Graph

Source Code

handler-proxy/src/test/java/io/netty/handler/proxy/ProxyHandlerTest.java lines 76–811

public class ProxyHandlerTest {

    private static final InternalLogger logger = InternalLoggerFactory.getInstance(ProxyHandlerTest.class);

    private static final InetSocketAddress DESTINATION = InetSocketAddress.createUnresolved("destination.com", 42);
    private static final InetSocketAddress BAD_DESTINATION = SocketUtils.socketAddress("1.2.3.4", 5);
    private static final String USERNAME = "testUser";
    private static final String PASSWORD = "testPassword";
    private static final String BAD_USERNAME = "badUser";
    private static final String BAD_PASSWORD = "badPassword";

    static final EventLoopGroup group = new MultiThreadIoEventLoopGroup(
            3, new DefaultThreadFactory("proxy", true), NioIoHandler.newFactory());

    static final SslContext serverSslCtx;
    static final SslContext clientSslCtx;

    static {
        SslContext sctx;
        SslContext cctx;
        try {
            X509Bundle cert = new CertificateBuilder()
                    .subject("cn=localhost")
                    .setIsCertificateAuthority(true)
                    .buildSelfSigned();
            sctx = SslContextBuilder.forServer(cert.getKeyPair().getPrivate(), cert.getCertificatePath()).build();
            cctx = SslContextBuilder.forClient().trustManager(InsecureTrustManagerFactory.INSTANCE).build();
        } catch (Exception e) {
            throw new Error(e);
        }
        serverSslCtx = sctx;
        clientSslCtx = cctx;
    }

    static final ProxyServer deadHttpProxy = new HttpProxyServer(false, TestMode.UNRESPONSIVE, null);
    static final ProxyServer interHttpProxy = new HttpProxyServer(false, TestMode.INTERMEDIARY, null);
    static final ProxyServer anonHttpProxy = new HttpProxyServer(false, TestMode.TERMINAL, DESTINATION);
    static final ProxyServer httpProxy =
            new HttpProxyServer(false, TestMode.TERMINAL, DESTINATION, USERNAME, PASSWORD);

    static final ProxyServer deadHttpsProxy = new HttpProxyServer(true, TestMode.UNRESPONSIVE, null);
    static final ProxyServer interHttpsProxy = new HttpProxyServer(true, TestMode.INTERMEDIARY, null);
    static final ProxyServer anonHttpsProxy = new HttpProxyServer(true, TestMode.TERMINAL, DESTINATION);
    static final ProxyServer httpsProxy =
            new HttpProxyServer(true, TestMode.TERMINAL, DESTINATION, USERNAME, PASSWORD);

    static final ProxyServer deadSocks4Proxy = new Socks4ProxyServer(false, TestMode.UNRESPONSIVE, null);
    static final ProxyServer interSocks4Proxy = new Socks4ProxyServer(false, TestMode.INTERMEDIARY, null);
    static final ProxyServer anonSocks4Proxy = new Socks4ProxyServer(false, TestMode.TERMINAL, DESTINATION);
    static final ProxyServer socks4Proxy = new Socks4ProxyServer(false, TestMode.TERMINAL, DESTINATION, USERNAME);

    static final ProxyServer deadSocks5Proxy = new Socks5ProxyServer(false, TestMode.UNRESPONSIVE, null);
    static final ProxyServer interSocks5Proxy = new Socks5ProxyServer(false, TestMode.INTERMEDIARY, null);
    static final ProxyServer anonSocks5Proxy = new Socks5ProxyServer(false, TestMode.TERMINAL, DESTINATION);
    static final ProxyServer socks5Proxy =
            new Socks5ProxyServer(false, TestMode.TERMINAL, DESTINATION, USERNAME, PASSWORD);

    // Define private auth method and token for SOCKS5 private authentication
    static final byte PRIVATE_AUTH_METHOD = (byte) 0x80; // Custom authentication method (range 0x80-0xFE)
    static final byte[] PRIVATE_AUTH_TOKEN = "privateAuthToken123".getBytes(CharsetUtil.US_ASCII);
    static final byte[] BAD_PRIVATE_AUTH_TOKEN = "wrongAuthToken".getBytes(CharsetUtil.US_ASCII);

    // SOCKS5 proxy with private authentication
    static final ProxyServer socks5PrivateProxy =
            new Socks5ProxyServer(false, TestMode.TERMINAL, DESTINATION, PRIVATE_AUTH_METHOD, PRIVATE_AUTH_TOKEN);

    private static final Collection<ProxyServer> allProxies = Arrays.asList(
            deadHttpProxy, interHttpProxy, anonHttpProxy, httpProxy,
            deadHttpsProxy, interHttpsProxy, anonHttpsProxy, httpsProxy,
            deadSocks4Proxy, interSocks4Proxy, anonSocks4Proxy, socks4Proxy,
            deadSocks5Proxy, interSocks5Proxy, anonSocks5Proxy, socks5Proxy, socks5PrivateProxy
    );

    // set to non-zero value in case you need predictable shuffling of test cases
    // look for "Seed used: *" debug message in test logs
    private static final long reproducibleSeed = 0L;

    public static List<Object[]> testItems() {

        List<TestItem> items = Arrays.asList(

Frequently Asked Questions

What is the ProxyHandlerTest class?
ProxyHandlerTest is a class in the netty codebase, defined in handler-proxy/src/test/java/io/netty/handler/proxy/ProxyHandlerTest.java.
Where is ProxyHandlerTest defined?
ProxyHandlerTest is defined in handler-proxy/src/test/java/io/netty/handler/proxy/ProxyHandlerTest.java at line 76.

Analyze Your Own Codebase

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

Try Supermodel Free