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(
Source
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