package org.infinispan.server.hotrod.test;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.host;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.hotRodCacheConfiguration;
import static org.infinispan.server.hotrod.test.HotRodTestingUtil.serverPort;
import static org.infinispan.test.fwk.TestCacheManagerFactory.createCacheManager;
import static org.testng.AssertJUnit.assertNotNull;
import org.infinispan.server.core.test.Stoppable;
import org.infinispan.server.hotrod.HotRodServer;
import org.infinispan.server.hotrod.configuration.HotRodServerConfigurationBuilder;
import org.infinispan.test.AbstractInfinispanTest;
import org.testng.annotations.Test;
/**
* Tests HotRod server start with SSL enabled and keystore which has different keystore and certificate passwords.
*
* @author vjuranek
* @since 9.0
*/
@Test(groups = "functional", testName = "server.hotrod.HotRodSslWithCertPasswdTest")
public class HotRodSslWithCertPasswdTest extends AbstractInfinispanTest {
private String keyStoreFileName = getClass().getClassLoader().getResource("password_server_keystore.jks").getPath();
private String trustStoreFileName =
getClass().getClassLoader().getResource("password_client_truststore.jks").getPath();
public void testServerStartWithSslAndCertPasswd() {
HotRodServerConfigurationBuilder builder = new HotRodServerConfigurationBuilder();
builder.host(host()).port(serverPort()).idleTimeout(0);
builder.ssl().enable().keyStoreFileName(keyStoreFileName).keyStorePassword("secret".toCharArray())
.keyStoreCertificatePassword("secret2".toCharArray()).trustStoreFileName(trustStoreFileName)
.trustStorePassword("secret".toCharArray());
Stoppable.useCacheManager(createCacheManager(hotRodCacheConfiguration()), cm ->
Stoppable.useServer(new HotRodServer(), server -> {
server.start(builder.build(), cm);
assertNotNull(server.getConfiguration().ssl().keyStoreCertificatePassword());
}
));
}
}