SocketSslClientRenegotiateTest Class — netty Architecture
Architecture documentation for the SocketSslClientRenegotiateTest class in SocketSslClientRenegotiateTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 7705e7ae_e3a1_f466_3809_922b706a3f4f["SocketSslClientRenegotiateTest"] 500bc459_e062_3134_53ae_67c8ad4b6bba["SocketSslClientRenegotiateTest.java"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|defined in| 500bc459_e062_3134_53ae_67c8ad4b6bba 7f566563_59b0_b6e3_785b_3ff6b58d0b4d["openSslNotAvailable()"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|method| 7f566563_59b0_b6e3_785b_3ff6b58d0b4d 873da6a4_560c_bfeb_3703_115a50d441c2["data()"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|method| 873da6a4_560c_bfeb_3703_115a50d441c2 bcbd04f8_1173_db09_d4b6_aa4078cb4925["testSslRenegotiationRejected()"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|method| bcbd04f8_1173_db09_d4b6_aa4078cb4925 69955c8a_22d3_f97e_4ec3_1c0c3ef5520e["SslHandler()"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|method| 69955c8a_22d3_f97e_4ec3_1c0c3ef5520e 11e8b493_20bc_c0cc_00a3_e69d2cfb7c7a["reset()"] 7705e7ae_e3a1_f466_3809_922b706a3f4f -->|method| 11e8b493_20bc_c0cc_00a3_e69d2cfb7c7a
Relationship Graph
Source Code
testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslClientRenegotiateTest.java lines 63–268
public class SocketSslClientRenegotiateTest extends AbstractSocketTest {
private static final InternalLogger logger = InternalLoggerFactory.getInstance(
SocketSslClientRenegotiateTest.class);
private static final File CERT_FILE;
private static final File KEY_FILE;
static {
try {
X509Bundle cert = new CertificateBuilder()
.subject("cn=localhost")
.setIsCertificateAuthority(true)
.buildSelfSigned();
CERT_FILE = cert.toTempCertChainPem();
KEY_FILE = cert.toTempPrivateKeyPem();
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
private static boolean openSslNotAvailable() {
return !OpenSsl.isAvailable();
}
public static Collection<Object[]> data() throws Exception {
List<SslContext> serverContexts = new ArrayList<SslContext>();
List<SslContext> clientContexts = new ArrayList<SslContext>();
clientContexts.add(new JdkSslClientContext(CERT_FILE));
boolean hasOpenSsl = OpenSsl.isAvailable();
if (hasOpenSsl) {
OpenSslServerContext context = new OpenSslServerContext(CERT_FILE, KEY_FILE);
serverContexts.add(context);
} else {
logger.warn("OpenSSL is unavailable and thus will not be tested.", OpenSsl.unavailabilityCause());
}
List<Object[]> params = new ArrayList<Object[]>();
for (SslContext sc: serverContexts) {
for (SslContext cc: clientContexts) {
for (int i = 0; i < 32; i++) {
params.add(new Object[] { sc, cc, true});
params.add(new Object[] { sc, cc, false});
}
}
}
return params;
}
private final AtomicReference<Throwable> clientException = new AtomicReference<Throwable>();
private final AtomicReference<Throwable> serverException = new AtomicReference<Throwable>();
private volatile Channel clientChannel;
private volatile Channel serverChannel;
private volatile SslHandler clientSslHandler;
private volatile SslHandler serverSslHandler;
private final TestHandler clientHandler = new TestHandler(clientException);
private final TestHandler serverHandler = new TestHandler(serverException);
@DisabledIf("openSslNotAvailable")
@ParameterizedTest(name = "{index}: serverEngine = {0}, clientEngine = {1}, delegate = {2}")
@MethodSource("data")
@Timeout(value = 30000, unit = TimeUnit.MILLISECONDS)
public void testSslRenegotiationRejected(final SslContext serverCtx, final SslContext clientCtx,
final boolean delegate, TestInfo testInfo) throws Throwable {
assumeTrue(OpenSsl.isRenegotiationSupported());
assumeTrue(OpenSsl.isAvailable());
run(testInfo, new Runner<ServerBootstrap, Bootstrap>() {
@Override
public void run(ServerBootstrap serverBootstrap, Bootstrap bootstrap) throws Throwable {
testSslRenegotiationRejected(sb, cb, serverCtx, clientCtx, delegate);
}
});
}
private static SslHandler newSslHandler(SslContext sslCtx, ByteBufAllocator allocator, Executor executor) {
if (executor == null) {
return sslCtx.newHandler(allocator);
Defined In
Source
Frequently Asked Questions
What is the SocketSslClientRenegotiateTest class?
SocketSslClientRenegotiateTest is a class in the netty codebase, defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslClientRenegotiateTest.java.
Where is SocketSslClientRenegotiateTest defined?
SocketSslClientRenegotiateTest is defined in testsuite/src/main/java/io/netty/testsuite/transport/socket/SocketSslClientRenegotiateTest.java at line 63.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free