package water.network;
import org.junit.Test;
import java.io.File;
import java.io.FileInputStream;
import java.util.Properties;
import static org.junit.Assert.*;
public class SecurityUtilsTest {
@Test
public void shouldGenerateKeystoreAndConfig() throws Exception {
try {
SecurityUtils.SSLCredentials testKeystore = SecurityUtils.generateSSLPair("test123", "h2o-keystore-test.jks", "");
String configPath = SecurityUtils.generateSSLConfig(testKeystore, "test-ssl.properties");
assertTrue(new File(testKeystore.jks.getLocation()).exists());
Properties sslConfig = new Properties();
sslConfig.load(new FileInputStream(configPath));
assertEquals(SecurityUtils.defaultTLSVersion(), sslConfig.getProperty("h2o_ssl_protocol"));
assertEquals("h2o-keystore-test.jks", sslConfig.getProperty("h2o_ssl_jks_internal"));
assertEquals("test123", sslConfig.getProperty("h2o_ssl_jks_password"));
assertEquals("h2o-keystore-test.jks", sslConfig.getProperty("h2o_ssl_jts"));
assertEquals("test123", sslConfig.getProperty("h2o_ssl_jts_password"));
} finally {
File keystore = new File("h2o-keystore-test.jks");
if(keystore.exists()) {
keystore.deleteOnExit();
}
File props = new File("test-ssl.properties");
if(props.exists()) {
props.deleteOnExit();
}
}
}
}