From 82f4f0133b44be4242851466b3078c49d92ef7f7 Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sat, 14 Dec 2024 12:44:34 +0900 Subject: [PATCH 1/5] =?UTF-8?q?chore:=20nginx=20docker-compose=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 18 +++--------------- nginx.conf => docs/nginx.conf | 12 ++++-------- 2 files changed, 7 insertions(+), 23 deletions(-) rename nginx.conf => docs/nginx.conf (75%) diff --git a/docker-compose.yml b/docker-compose.yml index e7358d2b2..8813a4e58 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -17,27 +17,15 @@ services: depends_on: - redis - solid-connect-server: + solid-connection-server: build: context: . dockerfile: Dockerfile - container_name: solid-connect-server + container_name: solid-connection-server ports: - "8080:8080" environment: - SPRING_DATA_REDIS_HOST=redis - SPRING_DATA_REDIS_PORT=6379 depends_on: - - redis - - nginx: - image: nginx:latest - container_name: nginx - ports: - - "80:80" - - "443:443" - volumes: - - ./nginx.conf:/etc/nginx/conf.d/default.conf - - /etc/letsencrypt:/etc/letsencrypt - depends_on: - - solid-connect-server + - redis \ No newline at end of file diff --git a/nginx.conf b/docs/nginx.conf similarity index 75% rename from nginx.conf rename to docs/nginx.conf index e94acb4e3..303463bce 100644 --- a/nginx.conf +++ b/docs/nginx.conf @@ -3,7 +3,7 @@ server { # http를 사용하는 경우 주석 해제 # location / { -# proxy_pass http://solid-connect-server:8080; +# proxy_pass http://solid-connection-server:8080; # proxy_set_header Host $host; # proxy_set_header X-Real-IP $remote_addr; # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; @@ -18,8 +18,8 @@ server { server { listen 443 ssl; - ssl_certificate /etc/letsencrypt/live/api.solid-connect.net/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/api.solid-connect.net/privkey.pem; + ssl_certificate /etc/letsencrypt/live/api.solid-connection.com/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/api.solid-connection.com/privkey.pem; client_max_body_size 10M; ssl_protocols TLSv1.2 TLSv1.3; @@ -31,14 +31,10 @@ server { ssl_stapling_verify on; location / { - proxy_pass http://solid-connect-server:8080; + proxy_pass http://solid-connection-server:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } - - location ~ /.well-known/acme-challenge { # 인증서 갱신에 필요한 경로 설정 - allow all; - } } \ No newline at end of file From c26bb177ea566d1dfb5ca4d6b08145e5bb4718aa Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sat, 14 Dec 2024 13:23:29 +0900 Subject: [PATCH 2/5] =?UTF-8?q?chore:=20cross-origin=20=ED=97=88=EC=9A=A9?= =?UTF-8?q?=20url=20=EC=A0=84=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/example/solidconnection/config/cors/WebConfig.java | 3 ++- .../solidconnection/config/security/SecurityConfiguration.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java index 9143d6558..1544a5b14 100644 --- a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java +++ b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java @@ -10,7 +10,8 @@ public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - .allowedOrigins("http://localhost:8080", "http://localhost:3000", "https://www.solid-connect.net") + // TODO: 환경변수 분리가 필요해 보임 + .allowedOrigins("http://localhost:8080", "http://localhost:3000", "https://www.solid-connection.com") .allowedMethods("*") .allowedHeaders("*") .allowCredentials(true); diff --git a/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java b/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java index 449bdd35c..bfcbe6bf7 100644 --- a/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java +++ b/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java @@ -27,7 +27,7 @@ public class SecurityConfiguration { @Bean public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); - configuration.setAllowedOrigins(Arrays.asList("https://www.solid-connect.net", "http://localhost:8080", "https://www.api.solid-connect.net", "http://localhost:3000")); + configuration.setAllowedOrigins(Arrays.asList("https://www.solid-connection.com", "http://localhost:8080", "https://www.api.solid-connection.com", "http://localhost:3000")); configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS")); configuration.setAllowedHeaders(Arrays.asList("*")); configuration.setAllowCredentials(true); From 4a9f56f2ba3fa67d3a80e6750cbcad80a282e65c Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sat, 14 Dec 2024 13:33:40 +0900 Subject: [PATCH 3/5] =?UTF-8?q?chore:=20nginx=20=EC=A0=9C=EA=B1=B0?= =?UTF-8?q?=EC=99=80=20docker-compose=20=EB=AA=85=EB=A0=B9=20=EB=B3=80?= =?UTF-8?q?=EA=B2=BD=EC=97=90=20=EB=94=B0=EB=A5=B8=20workflow=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7bf1a0ddd..0dbdd061d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -63,15 +63,6 @@ jobs: key: ${{ secrets.PRIVATE_KEY }} source: "./docker-compose.yml" target: "/home/${{ secrets.USERNAME }}/solid-connect-server/" - - - name: Copy nginx configuration file to remote - uses: appleboy/scp-action@master - with: - host: ${{ secrets.HOST }} - username: ${{ secrets.USERNAME }} - key: ${{ secrets.PRIVATE_KEY }} - source: "./nginx.conf" - target: "/home/${{ secrets.USERNAME }}/solid-connect-server/" - name: Run docker compose uses: appleboy/ssh-action@master @@ -82,5 +73,5 @@ jobs: script_stop: true script: | cd /home/${{ secrets.USERNAME }}/solid-connect-server - docker-compose down - docker-compose up -d --build + docker compose down + docker compose up -d --build From 411dde8945232056d0ea8ceb77171baeaf8942c4 Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sat, 14 Dec 2024 23:15:36 +0900 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20CorsPropertiesConfig=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80,=20cors=20allowed=20origins=20=EC=A0=95=EB=B3=B4?= =?UTF-8?q?=EB=A5=BC=20yml=EB=A1=9C=20=EB=B6=84=EB=A6=AC=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../config/cors/CorsPropertiesConfig.java | 17 +++++++++++++++++ .../solidconnection/config/cors/WebConfig.java | 6 +++++- .../config/security/SecurityConfiguration.java | 4 +++- 3 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/example/solidconnection/config/cors/CorsPropertiesConfig.java diff --git a/src/main/java/com/example/solidconnection/config/cors/CorsPropertiesConfig.java b/src/main/java/com/example/solidconnection/config/cors/CorsPropertiesConfig.java new file mode 100644 index 000000000..55e47bd90 --- /dev/null +++ b/src/main/java/com/example/solidconnection/config/cors/CorsPropertiesConfig.java @@ -0,0 +1,17 @@ +package com.example.solidconnection.config.cors; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Configuration; + +import java.util.List; + +@Getter +@Setter +@ConfigurationProperties(prefix = "cors") +@Configuration +public class CorsPropertiesConfig { + + private List allowedOrigins; +} \ No newline at end of file diff --git a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java index 1544a5b14..d4b66606b 100644 --- a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java +++ b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java @@ -1,17 +1,21 @@ package com.example.solidconnection.config.cors; +import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration +@RequiredArgsConstructor public class WebConfig implements WebMvcConfigurer { + private final CorsPropertiesConfig corsProperties; + @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // TODO: 환경변수 분리가 필요해 보임 - .allowedOrigins("http://localhost:8080", "http://localhost:3000", "https://www.solid-connection.com") + .allowedOrigins(corsProperties.getAllowedOrigins().toArray(new String[0])) .allowedMethods("*") .allowedHeaders("*") .allowCredentials(true); diff --git a/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java b/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java index bfcbe6bf7..70bcf6c37 100644 --- a/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java +++ b/src/main/java/com/example/solidconnection/config/security/SecurityConfiguration.java @@ -1,5 +1,6 @@ package com.example.solidconnection.config.security; +import com.example.solidconnection.config.cors.CorsPropertiesConfig; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -23,11 +24,12 @@ public class SecurityConfiguration { private final JwtAuthenticationFilter jwtAuthenticationFilter; + private final CorsPropertiesConfig corsProperties; @Bean public CorsConfigurationSource corsConfigurationSource() { CorsConfiguration configuration = new CorsConfiguration(); - configuration.setAllowedOrigins(Arrays.asList("https://www.solid-connection.com", "http://localhost:8080", "https://www.api.solid-connection.com", "http://localhost:3000")); + configuration.setAllowedOrigins(corsProperties.getAllowedOrigins()); configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS")); configuration.setAllowedHeaders(Arrays.asList("*")); configuration.setAllowCredentials(true); From 512dad1d600a9ddf3c9a41cd48ffacd29111385a Mon Sep 17 00:00:00 2001 From: Wibaek Park Date: Sun, 15 Dec 2024 17:51:29 +0900 Subject: [PATCH 5/5] =?UTF-8?q?style:=20=EC=A3=BC=EC=84=9D=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/example/solidconnection/config/cors/WebConfig.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java index d4b66606b..00f3cf411 100644 --- a/src/main/java/com/example/solidconnection/config/cors/WebConfig.java +++ b/src/main/java/com/example/solidconnection/config/cors/WebConfig.java @@ -14,7 +14,6 @@ public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") - // TODO: 환경변수 분리가 필요해 보임 .allowedOrigins(corsProperties.getAllowedOrigins().toArray(new String[0])) .allowedMethods("*") .allowedHeaders("*")