diff --git a/layout-server/pom.xml b/layout-server/pom.xml
index 9ae3cf8e5..c4d32d48b 100644
--- a/layout-server/pom.xml
+++ b/layout-server/pom.xml
@@ -39,6 +39,10 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.springframework.boot
+ spring-boot-starter-security
+
com.h2database
h2
diff --git a/layout-server/src/main/java/org/finos/vuu/layoutserver/CorsConfig.java b/layout-server/src/main/java/org/finos/vuu/layoutserver/config/CorsConfig.java
similarity index 94%
rename from layout-server/src/main/java/org/finos/vuu/layoutserver/CorsConfig.java
rename to layout-server/src/main/java/org/finos/vuu/layoutserver/config/CorsConfig.java
index 5637db23f..547dd4054 100644
--- a/layout-server/src/main/java/org/finos/vuu/layoutserver/CorsConfig.java
+++ b/layout-server/src/main/java/org/finos/vuu/layoutserver/config/CorsConfig.java
@@ -1,4 +1,4 @@
-package org.finos.vuu.layoutserver;
+package org.finos.vuu.layoutserver.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
diff --git a/layout-server/src/main/java/org/finos/vuu/layoutserver/config/SecurityConfig.java b/layout-server/src/main/java/org/finos/vuu/layoutserver/config/SecurityConfig.java
new file mode 100644
index 000000000..8c27e53cf
--- /dev/null
+++ b/layout-server/src/main/java/org/finos/vuu/layoutserver/config/SecurityConfig.java
@@ -0,0 +1,19 @@
+package org.finos.vuu.layoutserver.config;
+
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.security.config.annotation.web.builders.HttpSecurity;
+import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
+import org.springframework.security.web.SecurityFilterChain;
+
+@Configuration
+@EnableWebSecurity
+public class SecurityConfig {
+
+ @Bean
+ public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
+ http.requiresChannel().anyRequest().requiresSecure();
+ return http.build();
+ }
+
+}
diff --git a/layout-server/src/main/resources/application.properties b/layout-server/src/main/resources/application.properties
index afee88372..44c7c8130 100644
--- a/layout-server/src/main/resources/application.properties
+++ b/layout-server/src/main/resources/application.properties
@@ -1,6 +1,13 @@
server.port=8081
server.servlet.contextPath=/api
springdoc.swagger-ui.path=/swagger
+# SSL
+server.ssl.enabled=true
+server.ssl.key-store-type=PKCS12
+server.ssl.key-store=classpath:certs/localhost.p12
+server.ssl.key-store-password=password
+server.ssl.key-alias=1
+# Database
spring.datasource.url=jdbc:h2:mem:layoutdb;NON_KEYWORDS=GROUP,USER
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
diff --git a/layout-server/src/main/resources/certs/localhost.p12 b/layout-server/src/main/resources/certs/localhost.p12
new file mode 100644
index 000000000..be783c860
Binary files /dev/null and b/layout-server/src/main/resources/certs/localhost.p12 differ
diff --git a/vuu-ui/scripts/esbuild.mjs b/vuu-ui/scripts/esbuild.mjs
index 39ab88b92..639124967 100644
--- a/vuu-ui/scripts/esbuild.mjs
+++ b/vuu-ui/scripts/esbuild.mjs
@@ -25,8 +25,8 @@ export async function build(config) {
define: {
"process.env.NODE_ENV": `"${env}"`,
"process.env.NODE_DEBUG": `false`,
- "process.env.LOCAL": `true`,
- "process.env.LAYOUT_BASE_URL": `"http://127.0.0.1:8081/api"`,
+ "process.env.LOCAL": `false`,
+ "process.env.LAYOUT_BASE_URL": `"https://localhost:8081/api"`,
},
external,
footer,
diff --git a/vuu-ui/showcase/vite.config.js b/vuu-ui/showcase/vite.config.js
index a54edf443..48ed1192b 100644
--- a/vuu-ui/showcase/vite.config.js
+++ b/vuu-ui/showcase/vite.config.js
@@ -8,8 +8,8 @@ export default defineConfig({
},
define: {
"process.env.NODE_DEBUG": false,
- "process.env.LOCAL": true,
- "process.env.LAYOUT_BASE_URL": `"http://127.0.0.1:8081/api"`,
+ "process.env.LOCAL": false,
+ "process.env.LAYOUT_BASE_URL": `"https://localhost:8081/api"`,
},
esbuild: {
jsx: `automatic`,