Skip to content

Commit 9e0d830

Browse files
[Java] Spring Boot: Enable JSON TLS
1 parent ae7b5d2 commit 9e0d830

2 files changed

Lines changed: 25 additions & 0 deletions

File tree

frameworks/spring-boot/meta.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
"pipelined",
1313
"json",
1414
"json-comp",
15+
"json-tls",
1516
"upload",
1617
"static",
1718
"async-db",

frameworks/spring-boot/src/main/java/com/httparena/spring/boot/Application.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import com.zaxxer.hikari.HikariConfig;
44
import com.zaxxer.hikari.HikariDataSource;
55
import org.apache.catalina.connector.Connector;
6+
import org.apache.tomcat.util.net.SSLHostConfig;
7+
import org.apache.tomcat.util.net.SSLHostConfigCertificate;
68
import org.postgresql.ds.PGSimpleDataSource;
79
import org.springframework.beans.factory.annotation.Qualifier;
810
import org.springframework.boot.SpringApplication;
@@ -21,6 +23,7 @@
2123
import org.sqlite.SQLiteDataSource;
2224

2325
import javax.sql.DataSource;
26+
import java.io.File;
2427
import java.net.URI;
2528
import java.net.URISyntaxException;
2629

@@ -92,10 +95,31 @@ public void customize(final TomcatServletWebServerFactory factory) {
9295
connector.setPort(8080);
9396
connectorCustomizer.customize(connector);
9497
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+
}
95118
}
96119

97120
@Override
98121
public void registerWebSocketHandlers(final WebSocketHandlerRegistry registry) {
99122
registry.addHandler(new EchoWebSocketHandler(), "/ws");
100123
}
124+
101125
}

0 commit comments

Comments
 (0)