use of cn.taketoday.framework.web.server.Ssl in project today-infrastructure by TAKETODAY.
the class JettyServletWebServerFactoryTests method getSslSettings.
private Ssl getSslSettings(String... enabledProtocols) {
Ssl ssl = new Ssl();
ssl.setKeyStore("src/test/resources/test.jks");
ssl.setKeyStorePassword("secret");
ssl.setKeyPassword("password");
ssl.setCiphers(new String[] { "ALPHA", "BRAVO", "CHARLIE" });
ssl.setEnabledProtocols(enabledProtocols);
return ssl;
}
use of cn.taketoday.framework.web.server.Ssl in project today-infrastructure by TAKETODAY.
the class JettyServletWebServerFactoryTests method sslCiphersConfiguration.
@Test
void sslCiphersConfiguration() {
Ssl ssl = new Ssl();
ssl.setKeyStore("src/test/resources/test.jks");
ssl.setKeyStorePassword("secret");
ssl.setKeyPassword("password");
ssl.setCiphers(new String[] { "ALPHA", "BRAVO", "CHARLIE" });
JettyServletWebServerFactory factory = getFactory();
factory.setSsl(ssl);
this.webServer = factory.getWebServer();
this.webServer.start();
JettyWebServer jettyWebServer = (JettyWebServer) this.webServer;
ServerConnector connector = (ServerConnector) jettyWebServer.getServer().getConnectors()[0];
SslConnectionFactory connectionFactory = connector.getConnectionFactory(SslConnectionFactory.class);
SslContextFactory sslContextFactory = extractSslContextFactory(connectionFactory);
Assertions.assertThat(sslContextFactory.getIncludeCipherSuites()).containsExactly("ALPHA", "BRAVO", "CHARLIE");
Assertions.assertThat(sslContextFactory.getExcludeCipherSuites()).isEmpty();
}
use of cn.taketoday.framework.web.server.Ssl in project today-infrastructure by TAKETODAY.
the class SslServerCustomizerTests method keyStoreProviderIsUsedWhenCreatingKeyStore.
@Test
void keyStoreProviderIsUsedWhenCreatingKeyStore() {
Ssl ssl = new Ssl();
ssl.setKeyPassword("password");
ssl.setKeyStore("src/test/resources/test.jks");
ssl.setKeyStoreProvider("com.example.KeyStoreProvider");
SslServerCustomizer customizer = new SslServerCustomizer(ssl, null, null);
assertThatIllegalStateException().isThrownBy(() -> customizer.getKeyManagerFactory(ssl, null)).withCauseInstanceOf(NoSuchProviderException.class).withMessageContaining("com.example.KeyStoreProvider");
}
use of cn.taketoday.framework.web.server.Ssl in project today-infrastructure by TAKETODAY.
the class SslServerCustomizerTests method getKeyManagerFactoryWhenSslIsEnabledWithNoKeyStoreThrowsWebServerException.
@Test
void getKeyManagerFactoryWhenSslIsEnabledWithNoKeyStoreThrowsWebServerException() {
Ssl ssl = new Ssl();
SslServerCustomizer customizer = new SslServerCustomizer(ssl, null, null);
assertThatIllegalStateException().isThrownBy(() -> customizer.getKeyManagerFactory(ssl, null)).withCauseInstanceOf(WebServerException.class).withMessageContaining("Could not load key store 'null'");
}
use of cn.taketoday.framework.web.server.Ssl in project today-infrastructure by TAKETODAY.
the class SslConnectorCustomizerTests method customizeWhenSslStoreProviderPresentShouldIgnorePasswordFromSsl.
@Test
void customizeWhenSslStoreProviderPresentShouldIgnorePasswordFromSsl(CapturedOutput output) throws Exception {
System.setProperty("javax.net.ssl.trustStorePassword", "trustStoreSecret");
Ssl ssl = new Ssl();
ssl.setKeyPassword("password");
ssl.setKeyStorePassword("secret");
SslStoreProvider sslStoreProvider = mock(SslStoreProvider.class);
given(sslStoreProvider.getTrustStore()).willReturn(loadStore());
given(sslStoreProvider.getKeyStore()).willReturn(loadStore());
SslConnectorCustomizer customizer = new SslConnectorCustomizer(ssl, sslStoreProvider);
Connector connector = this.tomcat.getConnector();
customizer.customize(connector);
this.tomcat.start();
assertThat(connector.getState()).isEqualTo(LifecycleState.STARTED);
assertThat(output).doesNotContain("Password verification failed");
}
Aggregations