From 436bdf66ec25f9d2fa47f40705e89d1ba1ac767f Mon Sep 17 00:00:00 2001
From: jaemin <sonjm3518@dsm.hs.kr>
Date: Sat, 28 Jan 2023 14:51:45 +0900
Subject: [PATCH 1/5] =?UTF-8?q?=E2=9A=B0=EF=B8=8F=20::=20=EB=B6=88?=
 =?UTF-8?q?=ED=95=84=EC=9A=94=ED=95=9C=20=ED=81=B4=EB=9E=98=EC=8A=A4=20?=
 =?UTF-8?q?=EC=82=AD=EC=A0=9C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .github/workflows/CD.yml | 53 ----------------------------------------
 1 file changed, 53 deletions(-)
 delete mode 100644 .github/workflows/CD.yml

diff --git a/.github/workflows/CD.yml b/.github/workflows/CD.yml
deleted file mode 100644
index 17af657..0000000
--- a/.github/workflows/CD.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-name: CD
-
-on:
-  push:
-    branches:
-      - main
-      - "hotfix/**"
-      - "feature/**"
-      - "release/**"
-
-jobs:
-  build:
-    environment: prod
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        java-version: [ 11 ]
-    outputs:
-      version: ${{ steps.get_version.outputs.BRANCH_NAME }}
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Set up Java
-        uses: actions/setup-java@v2
-        with:
-          java-version: ${{ matrix.java-version }}
-          distribution: 'zulu'
-
-      - name: Gradle Build
-        uses: gradle/gradle-build-action@v2
-        with:
-          arguments: |
-            build
-            --no-daemon
-      - name: Login to Github Container Registry
-        uses: docker/login-action@v1
-        with:
-          registry: ghcr.io
-          username: ${{ secrets.GHCR_USER }}
-          password: ${{ secrets.GHCR_TOKEN }}
-
-      - name: Get branch name
-        run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr /# -)" >> $GITHUB_ENV
-
-      - name: Build and push to Github Container Registry
-        uses: docker/build-push-action@v2
-        with:
-          context: .
-          file: ./Dockerfile
-          push: true
-          tags: |
-            ghcr.io/team-xquare/v1-service-dms:latest
-            ghcr.io/team-xquare/v1-service-dms:${{ env.BRANCH_NAME }}
\ No newline at end of file

From 80c16175e8b6012047d719a00b6b08265d6b84ec Mon Sep 17 00:00:00 2001
From: jaemin <sonjm3518@dsm.hs.kr>
Date: Sat, 28 Jan 2023 14:51:55 +0900
Subject: [PATCH 2/5] =?UTF-8?q?=F0=9F=93=91=20::=20CI?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .github/workflows/CI.yaml | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 .github/workflows/CI.yaml

diff --git a/.github/workflows/CI.yaml b/.github/workflows/CI.yaml
new file mode 100644
index 0000000..2ce447a
--- /dev/null
+++ b/.github/workflows/CI.yaml
@@ -0,0 +1,29 @@
+name: v1-service-dms - CI
+
+on:
+  push:
+    branches:
+      - main
+  pull_request:
+    branches:
+      - main
+
+jobs:
+  test:
+    runs-on: ubuntu-latest
+
+    steps:
+      - uses: actions/checkout@v2
+      - name: SetUp JDK 17
+        uses: actions/setup-java@v2
+        with:
+          java-version: "17"
+          distribution: 'adopt'
+
+      - name: Grant execute permission for gradlew
+        run: chmod +x gradlew
+
+      - name: Gradle Test
+        uses: gradle/gradle-build-action@v2
+        with:
+          arguments: test
\ No newline at end of file

From 4f00f9501a4e843ff60a39e5fd97153c360f9ca2 Mon Sep 17 00:00:00 2001
From: jaemin <sonjm3518@dsm.hs.kr>
Date: Sat, 28 Jan 2023 15:18:54 +0900
Subject: [PATCH 3/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20java=20version=20?=
 =?UTF-8?q?11=20=E2=86=92=2017?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .github/workflows/prod-build.yaml | 99 ++++++++++++++++---------------
 .github/workflows/stag-build.yaml | 91 ++++++++++++++--------------
 2 files changed, 96 insertions(+), 94 deletions(-)

diff --git a/.github/workflows/prod-build.yaml b/.github/workflows/prod-build.yaml
index 773c896..bd1e783 100644
--- a/.github/workflows/prod-build.yaml
+++ b/.github/workflows/prod-build.yaml
@@ -1,4 +1,4 @@
-name: Build for Production
+name: v1-service-dms - CD(prod)
 on:
   push:
     tags:
@@ -10,60 +10,63 @@ env:
 
 jobs:
   build:
+    environment: prod
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        java-version: [ 11 ]
-    
-    steps:
-    - name: Check Out The Repository
-      uses: actions/checkout@v3
-  
-    - name: Set up Java
-      uses: actions/setup-java@v2
-      with:
-        java-version: ${{ matrix.java-version }}
-        distribution: 'zulu'
+        java-version: [ 17 ]
+    outputs:
+      version: ${{ steps.get_version.outputs.BRANCH_NAME }}
 
-    - name: Get the version
-      id: get_version
-      run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
+    steps:
+      - name: Check Out The Repository
+        uses: actions/checkout@v3
 
-    - name: Gradle Build
-      uses: gradle/gradle-build-action@v2
-      with:
-        arguments: |
-          build
-          --no-daemon
+      - name: Set up Java
+        uses: actions/setup-java@v2
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: 'zulu'
 
-    - name: Login to ECR
-      id: ecr
-      uses: elgohr/ecr-login-action@master
-      with:
-        access_key: ${{ secrets.AWS_ACCESS_KEY }}
-        secret_access_key: ${{ secrets.AWS_SECRET_KEY }}
-        region: ${{ secrets.AWS_REGION }}
+      - name: Get the version
+        id: get_version
+        run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3)
 
-    - name: Publish to Registry
-      uses: elgohr/Publish-Docker-Github-Action@v5
-      with:
-        name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}}
-        username: ${{ steps.ecr.outputs.username }}
-        password: ${{ steps.ecr.outputs.password }}
-        registry: ${{ steps.ecr.outputs.registry }}
-        tags: ${{ steps.get_version.outputs.VERSION }}
-        buildargs: |
-          PROFILE=prod
-          CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }}
-          CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }}
+      - name: Gradle Build
+        uses: gradle/gradle-build-action@v2
+        with:
+          arguments: |
+            build
+            --no-daemon
+      - name: Login to ECR
+        id: ecr
+        uses: elgohr/ecr-login-action@master
+        with:
+          access_key: ${{ secrets.AWS_ACCESS_KEY }}
+          secret_access_key: ${{ secrets.AWS_SECRET_KEY }}
+          region: ${{ secrets.AWS_REGION }}
 
-    - name: Repository Dispatch
-      uses: peter-evans/repository-dispatch@v1
-      with:
-        token: ${{ secrets.GITOPS_DEPLOY_PRODUCTION_TOKEN }}
-        repository: team-xquare/xquare-gitops-repo-production
-        event-type: update_image
-        client-payload: '{"ref": "${{ github.ref }}", 
+      - name: Publish to Registry
+        uses: elgohr/Publish-Docker-Github-Action@v5
+        with:
+          name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}}
+          username: ${{ steps.ecr.outputs.username }}
+          password: ${{ steps.ecr.outputs.password }}
+          registry: ${{ steps.ecr.outputs.registry }}
+          tags: ${{ steps.get_version.outputs.VERSION }}
+          buildargs: |
+            PROFILE=prod
+            CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }}
+            CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }}
+      - name: Repository Dispatch
+        uses: peter-evans/repository-dispatch@v1
+        with:
+          token: ${{ secrets.GITOPS_DEPLOY_PRODUCTION_TOKEN }}
+          repository: team-xquare/xquare-gitops-repo-production
+          event-type: update_image
+          client-payload: '{
+                          "ref": "${{ github.ref }}",
                           "version":  "${{ steps.get_version.outputs.VERSION }}",
                           "service_name": "${{env.SERVICE_NAME}}",
-                          "service_type": "${{env.SERVICE_TYPE}}"}'
+                          "service_type": "${{env.SERVICE_TYPE}}"
+                          }'
\ No newline at end of file
diff --git a/.github/workflows/stag-build.yaml b/.github/workflows/stag-build.yaml
index e8b265e..d7909c9 100644
--- a/.github/workflows/stag-build.yaml
+++ b/.github/workflows/stag-build.yaml
@@ -1,4 +1,4 @@
-name: Build for Stage
+name: v1-service-dms - CD(stag)
 on:
   push:
     branches:
@@ -10,58 +10,57 @@ env:
 
 jobs:
   build:
+    environment: stag
     runs-on: ubuntu-latest
     strategy:
       matrix:
-        java-version: [ 11 ]
+        java-version: [ 17 ]
     outputs:
-      version: ${{ steps.get_version.outputs.BRANCH_NAME }}  
-    
-    steps:
-    - name: Check Out The Repository
-      uses: actions/checkout@v3
-  
-    - name: Set up Java
-      uses: actions/setup-java@v2
-      with:
-        java-version: ${{ matrix.java-version }}
-        distribution: 'zulu'
+      version: ${{ steps.get_version.outputs.BRANCH_NAME }}
 
-    - name: Gradle Build
-      uses: gradle/gradle-build-action@v2
-      with:
-        arguments: |
-          build
-          --no-daemon
+    steps:
+      - name: Check Out The Repository
+        uses: actions/checkout@v3
 
-    - name: Login to ECR
-      id: ecr
-      uses: elgohr/ecr-login-action@master
-      with:
-        access_key: ${{ secrets.AWS_ACCESS_KEY }}
-        secret_access_key: ${{ secrets.AWS_SECRET_KEY }}
-        region: ${{ secrets.AWS_REGION }}
+      - name: Set up Java
+        uses: actions/setup-java@v2
+        with:
+          java-version: ${{ matrix.java-version }}
+          distribution: 'zulu'
 
-    - name: Publish to Registry
-      uses: elgohr/Publish-Docker-Github-Action@v5
-      with:
-        name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}}
-        username: ${{ steps.ecr.outputs.username }}
-        password: ${{ steps.ecr.outputs.password }}
-        registry: ${{ steps.ecr.outputs.registry }}
-        tags: ${{ github.sha }}
-        buildargs: |
-          PROFILE=stag
-          CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }}
-          CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }}
+      - name: Gradle Build
+        uses: gradle/gradle-build-action@v2
+        with:
+          arguments: |
+            build
+            --no-daemon
+      - name: Login to ECR
+        id: ecr
+        uses: elgohr/ecr-login-action@master
+        with:
+          access_key: ${{ secrets.AWS_ACCESS_KEY }}
+          secret_access_key: ${{ secrets.AWS_SECRET_KEY }}
+          region: ${{ secrets.AWS_REGION }}
 
-    - name: Repository Dispatch
-      uses: peter-evans/repository-dispatch@v1
-      with:
-        token: ${{ secrets.GITOPS_DEPLOY_STAGE_TOKEN }}
-        repository: team-xquare/xquare-gitops-repo-staging
-        event-type: update_image
-        client-payload: '{"ref": "${{ github.ref }}", 
+      - name: Publish to Registry
+        uses: elgohr/Publish-Docker-Github-Action@v5
+        with:
+          name: ${{env.SERVICE_NAME}}-${{env.SERVICE_TYPE}}
+          username: ${{ steps.ecr.outputs.username }}
+          password: ${{ steps.ecr.outputs.password }}
+          registry: ${{ steps.ecr.outputs.registry }}
+          tags: ${{ github.sha }}
+          buildargs: |
+            PROFILE=stag
+            CLOUD_CONFIG_USERNAME=${{ secrets.CLOUD_CONFIG_USERNAME }}
+            CLOUD_CONFIG_PASSWORD=${{ secrets.CLOUD_CONFIG_PASSWORD }}
+      - name: Repository Dispatch
+        uses: peter-evans/repository-dispatch@v1
+        with:
+          token: ${{ secrets.GITOPS_DEPLOY_STAGE_TOKEN }}
+          repository: team-xquare/xquare-gitops-repo-staging
+          event-type: update_image
+          client-payload: '{"ref": "${{ github.ref }}", 
                           "version": "${{ github.sha }}",
                           "service_name": "${{env.SERVICE_NAME}}",
-                          "service_type": "${{env.SERVICE_TYPE}}" }'
+                          "service_type": "${{env.SERVICE_TYPE}}" }'
\ No newline at end of file

From 2699391e6d7ab6c8481d5a8e84c6974b7af8810c Mon Sep 17 00:00:00 2001
From: jaemin <sonjm3518@dsm.hs.kr>
Date: Sat, 28 Jan 2023 15:34:05 +0900
Subject: [PATCH 4/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20cloud=20config=20?=
 =?UTF-8?q?=EC=84=A4=EC=A0=95?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/main/resources/application.yml | 25 +++++++++++++------------
 1 file changed, 13 insertions(+), 12 deletions(-)

diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2ca38e5..22f36ab 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -1,3 +1,8 @@
+server:
+  shutdown: graceful
+  servlet:
+    context-path: /dms
+
 spring:
   application:
     name: v1-dms-service
@@ -10,17 +15,18 @@ spring:
       username: ${CLOUD_CONFIG_USERNAME}
       password: ${CLOUD_CONFIG_PASSWORD}
 
+  datasource:
+    driver-class-name: com.mysql.cj.jdbc.Driver
+    url: ${db.url}
+    username: ${db.username}
+    password: ${db.password}
+
   jpa:
     database: mysql
     database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
     hibernate:
-      ddl-auto: none
-
-  datasource:
-    url: ${db.url}
-    driver-class-name: com.mysql.cj.jdbc.Driver
-    password: ${db.password}
-    username: ${db.username}
+      ddl-auto: validate
+    open-in-view: false
 
   jackson:
     property-naming-strategy: SNAKE_CASE
@@ -28,11 +34,6 @@ spring:
   lifecycle:
     timeout-per-shutdown-phase: 20s
 
-server:
-  servlet:
-    context-path: /dms
-  shutdown: graceful
-
 auth:
   id: ${xquare.admin.id}
   pw: ${xquare.admin.pw}

From abe9e0bce67a13437e8c1cdaf645595417e3133a Mon Sep 17 00:00:00 2001
From: jaemin <sonjm3518@dsm.hs.kr>
Date: Sat, 28 Jan 2023 15:34:26 +0900
Subject: [PATCH 5/5] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20::=20hasAnyAuthority?=
 =?UTF-8?q?=EB=A1=9C=20=EB=B3=80=EA=B2=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../xquare/dms/global/security/SecurityConfig.java   | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/src/main/java/app/xquare/dms/global/security/SecurityConfig.java b/src/main/java/app/xquare/dms/global/security/SecurityConfig.java
index 0e8f72e..4319d38 100644
--- a/src/main/java/app/xquare/dms/global/security/SecurityConfig.java
+++ b/src/main/java/app/xquare/dms/global/security/SecurityConfig.java
@@ -28,13 +28,13 @@ protected void configure(HttpSecurity http) throws Exception {
         http
                 .authorizeRequests()
 
-                .antMatchers(HttpMethod.GET, "/dms/notices").hasRole(DORMITORY)
-                .antMatchers(HttpMethod.POST, "/dms/notices/{notice-id}").hasRole(DORMITORY)
-                .antMatchers(HttpMethod.PUT, "/dms/notices/{notice-id}").hasRole(DORMITORY)
-                .antMatchers(HttpMethod.DELETE, "/dms/notices/{notice-id}").hasRole(DORMITORY)
+                .antMatchers(HttpMethod.GET, "/dms/notices").hasAnyRole(DORMITORY)
+                .antMatchers(HttpMethod.POST, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY)
+                .antMatchers(HttpMethod.PUT, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY)
+                .antMatchers(HttpMethod.DELETE, "/dms/notices/{notice-id}").hasAnyRole(DORMITORY)
 
-                .antMatchers(HttpMethod.GET, "/dms/stay").hasRole(DORMITORY)
-                .antMatchers(HttpMethod.GET, "/dms/excel/stay").hasRole(DORMITORY)
+                .antMatchers(HttpMethod.GET, "/dms/stay").hasAnyRole(DORMITORY)
+                .antMatchers(HttpMethod.GET, "/dms/excel/stay").hasAnyRole(DORMITORY)
 
                 .anyRequest().authenticated();
         http