Search in sources :

Example 1 with TestProviderCreator

use of org.apache.kafka.common.security.ssl.mock.TestProviderCreator in project kafka by apache.

the class SslSelectorTest method testConnectionWithCustomKeyManager.

@Test
public void testConnectionWithCustomKeyManager() throws Exception {
    TestProviderCreator testProviderCreator = new TestProviderCreator();
    int requestSize = 100 * 1024;
    final String node = "0";
    String request = TestUtils.randomString(requestSize);
    Map<String, Object> sslServerConfigs = TestSslUtils.createSslConfig(TestKeyManagerFactory.ALGORITHM, TestTrustManagerFactory.ALGORITHM, TestSslUtils.DEFAULT_TLS_PROTOCOL_FOR_TESTS);
    sslServerConfigs.put(SecurityConfig.SECURITY_PROVIDERS_CONFIG, testProviderCreator.getClass().getName());
    EchoServer server = new EchoServer(SecurityProtocol.SSL, sslServerConfigs);
    server.start();
    Time time = new MockTime();
    File trustStoreFile = new File(TestKeyManagerFactory.TestKeyManager.mockTrustStoreFile);
    Map<String, Object> sslClientConfigs = TestSslUtils.createSslConfig(true, true, Mode.CLIENT, trustStoreFile, "client");
    ChannelBuilder channelBuilder = new TestSslChannelBuilder(Mode.CLIENT);
    channelBuilder.configure(sslClientConfigs);
    Metrics metrics = new Metrics();
    Selector selector = new Selector(5000, metrics, time, "MetricGroup", channelBuilder, new LogContext());
    selector.connect(node, new InetSocketAddress("localhost", server.port), BUFFER_SIZE, BUFFER_SIZE);
    while (!selector.connected().contains(node)) selector.poll(10000L);
    while (!selector.isChannelReady(node)) selector.poll(10000L);
    selector.send(createSend(node, request));
    waitForBytesBuffered(selector, node);
    TestUtils.waitForCondition(() -> cipherMetrics(metrics).size() == 1, "Waiting for cipher metrics to be created.");
    assertEquals(Integer.valueOf(1), cipherMetrics(metrics).get(0).metricValue());
    assertNotNull(selector.channel(node).channelMetadataRegistry().cipherInformation());
    selector.close(node);
    super.verifySelectorEmpty(selector);
    assertEquals(1, cipherMetrics(metrics).size());
    assertEquals(Integer.valueOf(0), cipherMetrics(metrics).get(0).metricValue());
    Security.removeProvider(testProviderCreator.getProvider().getName());
    selector.close();
    server.close();
    metrics.close();
}
Also used : InetSocketAddress(java.net.InetSocketAddress) TestProviderCreator(org.apache.kafka.common.security.ssl.mock.TestProviderCreator) LogContext(org.apache.kafka.common.utils.LogContext) MockTime(org.apache.kafka.common.utils.MockTime) Time(org.apache.kafka.common.utils.Time) Metrics(org.apache.kafka.common.metrics.Metrics) File(java.io.File) MockTime(org.apache.kafka.common.utils.MockTime) Test(org.junit.jupiter.api.Test)

Example 2 with TestProviderCreator

use of org.apache.kafka.common.security.ssl.mock.TestProviderCreator in project kafka by apache.

the class SslFactoryTest method testSslFactoryWithCustomKeyManagerConfiguration.

@Test
public void testSslFactoryWithCustomKeyManagerConfiguration() {
    TestProviderCreator testProviderCreator = new TestProviderCreator();
    Map<String, Object> serverSslConfig = TestSslUtils.createSslConfig(TestKeyManagerFactory.ALGORITHM, TestTrustManagerFactory.ALGORITHM, tlsProtocol);
    serverSslConfig.put(SecurityConfig.SECURITY_PROVIDERS_CONFIG, testProviderCreator.getClass().getName());
    SslFactory sslFactory = new SslFactory(Mode.SERVER);
    sslFactory.configure(serverSslConfig);
    assertNotNull(sslFactory.sslEngineFactory(), "SslEngineFactory not created");
    Security.removeProvider(testProviderCreator.getProvider().getName());
}
Also used : TestProviderCreator(org.apache.kafka.common.security.ssl.mock.TestProviderCreator) Test(org.junit.jupiter.api.Test)

Aggregations

TestProviderCreator (org.apache.kafka.common.security.ssl.mock.TestProviderCreator)2 Test (org.junit.jupiter.api.Test)2 File (java.io.File)1 InetSocketAddress (java.net.InetSocketAddress)1 Metrics (org.apache.kafka.common.metrics.Metrics)1 LogContext (org.apache.kafka.common.utils.LogContext)1 MockTime (org.apache.kafka.common.utils.MockTime)1 Time (org.apache.kafka.common.utils.Time)1