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`,