Home / Function/ mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() — netty Function Reference

mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() — netty Function Reference

Architecture documentation for the mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() function in SSLEngineTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  e47c4b64_0af5_d342_1514_ecf0991f0c2a["mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided()"]
  9150c92a_2afc_b83a_c3bf_86dfac6e9d9b["SSLEngineTest"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|defined in| 9150c92a_2afc_b83a_c3bf_86dfac6e9d9b
  3fb9b745_261d_4391_c31f_a44d5deeb05a["SessionValueSettingTrustManager()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| 3fb9b745_261d_4391_c31f_a44d5deeb05a
  bf19737b_7dc7_9dfd_0a67_ae31448ebbe8["protocols()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| bf19737b_7dc7_9dfd_0a67_ae31448ebbe8
  e3b541e6_b593_4b1f_a637_da19020e73df["ciphers()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| e3b541e6_b593_4b1f_a637_da19020e73df
  a4c6f3c6_7c1f_4410_d6f3_c118e7483035["messageReceived()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| a4c6f3c6_7c1f_4410_d6f3_c118e7483035
  c1ea24b4_912a_5bc9_eb9f_d097c21e00d3["setupServer()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| c1ea24b4_912a_5bc9_eb9f_d097c21e00d3
  13aca077_a788_4333_9f8b_2b1437653846["delegate()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| 13aca077_a788_4333_9f8b_2b1437653846
  5b1d05e1_aa74_d249_3836_8b69b42f579f["setupClient()"]
  e47c4b64_0af5_d342_1514_ecf0991f0c2a -->|calls| 5b1d05e1_aa74_d249_3836_8b69b42f579f
  style e47c4b64_0af5_d342_1514_ecf0991f0c2a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java lines 4077–4149

    @Timeout(value = 60, threadMode = Timeout.ThreadMode.SEPARATE_THREAD)
    @MethodSource("newTestParams")
    @ParameterizedTest
    public void mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided(SSLEngineTestParam param)
            throws Exception {
        SelfSignedCertificate ssc = CachedSelfSignedCertificate.getCachedCertificate();
        SessionValueSettingTrustManager clientTm = new SessionValueSettingTrustManager("key", "client");
        SessionValueSettingTrustManager serverTm = new SessionValueSettingTrustManager("key", "server");
        clientSslCtx = wrapContext(param, SslContextBuilder.forClient()
                .trustManager(clientTm)
                .sslProvider(sslClientProvider())
                .sslContextProvider(clientSslContextProvider())
                .protocols(param.protocols())
                .ciphers(param.ciphers())
                .build()); // Client provides no certificate!
        serverSslCtx = wrapContext(param, SslContextBuilder.forServer(ssc.certificate(), ssc.privateKey())
                .trustManager(serverTm)
                .sslProvider(sslServerProvider())
                .sslContextProvider(serverSslContextProvider())
                .protocols(param.protocols())
                .ciphers(param.ciphers())
                .clientAuth(ClientAuth.OPTIONAL) // Client auth is OPTIONAL!
                .build());
        final BlockingQueue<String> clientSessionValues = new LinkedBlockingQueue<String>();
        final BlockingQueue<String> serverSessionValues = new LinkedBlockingQueue<String>();
        OnNextMessage checkClient = new OnNextMessage() {
            @Override
            public void messageReceived(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
                msg.release();
                SslHandler sslHandler = ctx.pipeline().get(SslHandler.class);
                SSLEngine engine = sslHandler.engine();
                logger.debug("Client message received: {} ({}) {} {}",
                        engine.getSession(), engine.getHandshakeStatus(), isSessionReused(engine),
                        Arrays.toString(engine.getSession().getValueNames()));
                Object value = engine.getSession().getValue("key");
                clientSessionValues.put((String) value);
            }
        };
        OnNextMessage checkServer = new OnNextMessage() {
            @Override
            public void messageReceived(ChannelHandlerContext ctx, ByteBuf msg) throws Exception {
                SslHandler sslHandler = ctx.pipeline().get(SslHandler.class);
                SSLEngine engine = sslHandler.engine();
                logger.debug("Server message received: {} ({}) {} {}",
                        engine.getSession(), engine.getHandshakeStatus(), isSessionReused(engine),
                        Arrays.toString(engine.getSession().getValueNames()));
                Object value = engine.getSession().getValue("key");
                serverSessionValues.put(value == null ? "NULL" : String.valueOf(value));
                ctx.writeAndFlush(msg).addListener(ChannelFutureListener.CLOSE);
            }
        };

        setupServer(param.type(), param.delegate());
        InetSocketAddress addr = (InetSocketAddress) serverChannel.localAddress();
        setupClient(param.type(), param.delegate(), "a.netty.io", addr.getPort());
        for (int i = 0; i < 10; i++) {
            clientReceiver.onNextMessages.offer(checkClient);
            serverReceiver.onNextMessages.offer(checkServer);

            ChannelFuture ccf = cb.connect(addr);
            assertTrue(ccf.syncUninterruptibly().isSuccess());
            clientChannel = ccf.channel();

            clientChannel.writeAndFlush(clientChannel.alloc().buffer().writeInt(42)).sync();
            assertEquals("client", clientSessionValues.take());
            assertEquals("NULL", serverSessionValues.take());
            clientChannel.closeFuture().sync();
        }
        assertTrue(clientReceiver.onNextMessages.isEmpty());
        assertTrue(serverReceiver.onNextMessages.isEmpty());
        assertTrue(clientSessionValues.isEmpty());
        assertTrue(serverSessionValues.isEmpty());
    }

Domain

Subdomains

Frequently Asked Questions

What does mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() do?
mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java.
Where is mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() defined?
mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() is defined in handler/src/test/java/io/netty/handler/ssl/SSLEngineTest.java at line 4077.
What does mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() call?
mustNotCallResumeWhenClientAuthIsOptionalAndNoClientCertIsProvided() calls 7 function(s): SessionValueSettingTrustManager, ciphers, delegate, messageReceived, protocols, setupClient, setupServer.

Analyze Your Own Codebase

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

Try Supermodel Free