|
3 | 3 | import com.zaxxer.hikari.HikariConfig; |
4 | 4 | import com.zaxxer.hikari.HikariDataSource; |
5 | 5 | import org.apache.catalina.connector.Connector; |
| 6 | +import org.apache.tomcat.util.net.SSLHostConfig; |
| 7 | +import org.apache.tomcat.util.net.SSLHostConfigCertificate; |
6 | 8 | import org.postgresql.ds.PGSimpleDataSource; |
7 | 9 | import org.springframework.beans.factory.annotation.Qualifier; |
8 | 10 | import org.springframework.boot.SpringApplication; |
|
21 | 23 | import org.sqlite.SQLiteDataSource; |
22 | 24 |
|
23 | 25 | import javax.sql.DataSource; |
| 26 | +import java.io.File; |
24 | 27 | import java.net.URI; |
25 | 28 | import java.net.URISyntaxException; |
26 | 29 |
|
@@ -92,10 +95,31 @@ public void customize(final TomcatServletWebServerFactory factory) { |
92 | 95 | connector.setPort(8080); |
93 | 96 | connectorCustomizer.customize(connector); |
94 | 97 | factory.addAdditionalConnectors(connector); |
| 98 | + |
| 99 | + String certPath = System.getenv().getOrDefault("TLS_CERT", "/certs/server.crt"); |
| 100 | + String keyPath = System.getenv().getOrDefault("TLS_KEY", "/certs/server.key"); |
| 101 | + |
| 102 | + if (new File(certPath).exists() && new File(keyPath).exists()) { |
| 103 | + Connector tlsConnector = new Connector("HTTP/1.1"); |
| 104 | + tlsConnector.setPort(8081); |
| 105 | + tlsConnector.setScheme("https"); |
| 106 | + tlsConnector.setSecure(true); |
| 107 | + tlsConnector.setProperty("SSLEnabled", "true"); |
| 108 | + |
| 109 | + SSLHostConfig sslHostConfig = new SSLHostConfig(); |
| 110 | + SSLHostConfigCertificate certificate = new SSLHostConfigCertificate(sslHostConfig, SSLHostConfigCertificate.Type.UNDEFINED); |
| 111 | + certificate.setCertificateFile(certPath); |
| 112 | + certificate.setCertificateKeyFile(keyPath); |
| 113 | + sslHostConfig.addCertificate(certificate); |
| 114 | + tlsConnector.addSslHostConfig(sslHostConfig); |
| 115 | + |
| 116 | + factory.addAdditionalConnectors(tlsConnector); |
| 117 | + } |
95 | 118 | } |
96 | 119 |
|
97 | 120 | @Override |
98 | 121 | public void registerWebSocketHandlers(final WebSocketHandlerRegistry registry) { |
99 | 122 | registry.addHandler(new EchoWebSocketHandler(), "/ws"); |
100 | 123 | } |
| 124 | + |
101 | 125 | } |
0 commit comments