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();
}
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());
}
Aggregations