From 84c8ea8dd51f7c61d51634fa59412c3923f58b39 Mon Sep 17 00:00:00 2001 From: heodongun <“heodongun0922@gmail.com”> Date: Thu, 27 Feb 2025 22:00:34 +0900 Subject: [PATCH 1/2] =?UTF-8?q?FEAUTE=20:=20=EC=84=A4=EC=A0=95=20=EA=B4=80?= =?UTF-8?q?=EB=A0=A8=20=EB=81=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../log/common/config/CorsMvcConfig.java | 11 +++-- .../log/common/config/SecurityConfig.java | 3 +- .../oauth/service/CustomFailureHandler.java | 2 +- .../oauth/service/CustomSuccessHandler.java | 2 +- src/main/resources/application.txt | 44 ++++++++++++++++++ src/main/resources/application.yml | 46 ++++++++++--------- 6 files changed, 77 insertions(+), 31 deletions(-) create mode 100644 src/main/resources/application.txt diff --git a/src/main/java/com/bamboo/log/common/config/CorsMvcConfig.java b/src/main/java/com/bamboo/log/common/config/CorsMvcConfig.java index 38df386..311084f 100644 --- a/src/main/java/com/bamboo/log/common/config/CorsMvcConfig.java +++ b/src/main/java/com/bamboo/log/common/config/CorsMvcConfig.java @@ -9,10 +9,11 @@ public class CorsMvcConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry corsRegistry) { - corsRegistry.addMapping("/**") - .exposedHeaders("Set-Cookie") - //프론트 url 넣기 - .allowedOrigins("http://localhost:3000"); + .allowedOrigins("*") // 모든 Origin 허용 + .allowedMethods("*") // 모든 HTTP 메서드 허용 + .allowedHeaders("*") // 모든 헤더 허용 + .allowCredentials(true) // 쿠키 허용 + .exposedHeaders("Set-Cookie"); } -} \ No newline at end of file +} diff --git a/src/main/java/com/bamboo/log/common/config/SecurityConfig.java b/src/main/java/com/bamboo/log/common/config/SecurityConfig.java index d40a6fe..b899dcc 100644 --- a/src/main/java/com/bamboo/log/common/config/SecurityConfig.java +++ b/src/main/java/com/bamboo/log/common/config/SecurityConfig.java @@ -52,8 +52,7 @@ public SecurityFilterChain filterChain(HttpSecurity http) throws Exception { .requestMatchers("/refresh").permitAll() .requestMatchers("/logout").hasAnyRole("USER") .requestMatchers("/swagger-ui/**","/v3/api-docs/**","/swagger-resources/**","/webjars/**").permitAll() - .requestMatchers("/api/images/**").hasAnyRole("USER") - .anyRequest().authenticated()); + .anyRequest().hasAnyRole("USER")); http.sessionManagement((session) -> session diff --git a/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomFailureHandler.java b/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomFailureHandler.java index da4890c..492f364 100644 --- a/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomFailureHandler.java +++ b/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomFailureHandler.java @@ -14,6 +14,6 @@ public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler @Override public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { - response.sendRedirect("http://localhost:3000"); + response.sendRedirect("http://localhost:3000/login"); } } \ No newline at end of file diff --git a/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomSuccessHandler.java b/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomSuccessHandler.java index f82af92..4dbab0a 100644 --- a/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomSuccessHandler.java +++ b/src/main/java/com/bamboo/log/domain/user/oauth/service/CustomSuccessHandler.java @@ -42,7 +42,7 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo addRefreshEntity(name, username, refreshToken, 1209600000L); response.addCookie(createCookie("refresh", refreshToken)); response.addCookie(UnScretCreateCookie("access", accessToken)); - response.sendRedirect("http://localhost:3000/"); + response.sendRedirect("http://localhost:3000/welcome"); } private Cookie createCookie(String key, String value) { diff --git a/src/main/resources/application.txt b/src/main/resources/application.txt new file mode 100644 index 0000000..4f0ed06 --- /dev/null +++ b/src/main/resources/application.txt @@ -0,0 +1,44 @@ + +spring: + datasource: + url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_NAME} + username: ${MYSQL_USERNAME} + password: ${MYSQL_PASSWORD} + driver-class-name: com.mysql.cj.jdbc.Driver + jpa: + show-sql: true + open-in-view: false + hibernate: + ddl-auto: update + properties: + hibernate.dialect: org.hibernate.dialect.MySQL8Dialect + security: + oauth2: + client: + registration: + kakao: + client-authentication-method: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD} + client-name: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME} + client-id: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID} + client-secret: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET} + redirect-uri: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI} + authorization-grant-type: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE} + scope: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE} + provider: + kakao: + authorization-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI} + token-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI} + user-info-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI} + user-name-attribute: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE} + jwt: + secret: ${JWT_SECRET} +elice: + api: + token: ${API_TOKEN} + url: + face: ${FACE_URL} + img: ${IMG_URL} + chat: ${CHAT_URL} +emotion: + api: + url: ${EMOTION_URL} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 3ab1365..5b9161e 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,10 +1,8 @@ -# application.yml - spring: datasource: - url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_NAME} - username: ${MYSQL_USERNAME} - password: ${MYSQL_PASSWORD} + url: jdbc:mysql://localhost:3306/OAuth2?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true + username: root + password: heodongun0922 driver-class-name: com.mysql.cj.jdbc.Driver jpa: show-sql: true @@ -18,28 +16,32 @@ spring: client: registration: kakao: - client-authentication-method: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD} - client-name: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME} - client-id: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID} - client-secret: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET} - redirect-uri: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI} - authorization-grant-type: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE} - scope: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE} + client-authentication-method: client_secret_post + client-name: kakao + client-id: 649c1e34aedc1a7db892333d900725f2 + client-secret: FqJEAF5XKaO0n4Bv3KVXWCpUcHQWahY8 + redirect-uri: http://localhost:8080/login/oauth2/code/kakao + authorization-grant-type: authorization_code + scope: + - profile_nickname + - account_email provider: kakao: - authorization-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI} - token-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI} - user-info-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI} - user-name-attribute: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE} + authorization-uri: https://kauth.kakao.com/oauth/authorize + token-uri: https://kauth.kakao.com/oauth/token + user-info-uri: https://kapi.kakao.com/v2/user/me + user-name-attribute: id jwt: - secret: ${JWT_SECRET} + secret: vmfhaltmskdlstkfkdgodyroqkfwkdbalroqkfwkdbalaaaaaaaaaaaaaaaabbbbb + elice: api: - token: ${API_TOKEN} + token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NDA1NDYyMjgsIm5iZiI6MTc0MDU0NjIyOCwiZXhwIjoxNzUwNDYzOTk5LCJrZXlfaWQiOiJjYzI2YjZjMi0zNWExLTQ0NmEtODhkYS02ZjdkZGExNDMzYWMifQ.tqRvmEibKaRZUJK9m7pp7ZOWsdzy2rGg8YxjQ1MrSDk url: - face: ${FACE_URL} - img: ${IMG_URL} - chat: ${CHAT_URL} + face: https://api-cloud-function.elice.io/d5ff1aef-c59f-433c-8e1c-f9b52ac4ab6a/predict + img: https://api-cloud-function.elice.io/0133c2f7-9f3f-44b6-a3d6-c24ba8ef4510/generate + chat: null + emotion: api: - url: ${EMOTION_URL} \ No newline at end of file + url: null From f8899d275f4ef54eb8a4fa3b9e0bc3763bc2162c Mon Sep 17 00:00:00 2001 From: heodongun <“heodongun0922@gmail.com”> Date: Fri, 28 Feb 2025 03:12:30 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feature=20:=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EA=B4=80=EB=A0=A8=20=EB=81=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.txt | 44 ----------------------------- src/main/resources/application.yml | 45 ++++++++++++++---------------- 2 files changed, 21 insertions(+), 68 deletions(-) delete mode 100644 src/main/resources/application.txt diff --git a/src/main/resources/application.txt b/src/main/resources/application.txt deleted file mode 100644 index 4f0ed06..0000000 --- a/src/main/resources/application.txt +++ /dev/null @@ -1,44 +0,0 @@ - -spring: - datasource: - url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_NAME} - username: ${MYSQL_USERNAME} - password: ${MYSQL_PASSWORD} - driver-class-name: com.mysql.cj.jdbc.Driver - jpa: - show-sql: true - open-in-view: false - hibernate: - ddl-auto: update - properties: - hibernate.dialect: org.hibernate.dialect.MySQL8Dialect - security: - oauth2: - client: - registration: - kakao: - client-authentication-method: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD} - client-name: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME} - client-id: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID} - client-secret: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET} - redirect-uri: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI} - authorization-grant-type: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE} - scope: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE} - provider: - kakao: - authorization-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI} - token-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI} - user-info-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI} - user-name-attribute: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE} - jwt: - secret: ${JWT_SECRET} -elice: - api: - token: ${API_TOKEN} - url: - face: ${FACE_URL} - img: ${IMG_URL} - chat: ${CHAT_URL} -emotion: - api: - url: ${EMOTION_URL} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 5b9161e..4f0ed06 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,8 +1,9 @@ + spring: datasource: - url: jdbc:mysql://localhost:3306/OAuth2?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&allowPublicKeyRetrieval=true - username: root - password: heodongun0922 + url: jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_NAME} + username: ${MYSQL_USERNAME} + password: ${MYSQL_PASSWORD} driver-class-name: com.mysql.cj.jdbc.Driver jpa: show-sql: true @@ -16,32 +17,28 @@ spring: client: registration: kakao: - client-authentication-method: client_secret_post - client-name: kakao - client-id: 649c1e34aedc1a7db892333d900725f2 - client-secret: FqJEAF5XKaO0n4Bv3KVXWCpUcHQWahY8 - redirect-uri: http://localhost:8080/login/oauth2/code/kakao - authorization-grant-type: authorization_code - scope: - - profile_nickname - - account_email + client-authentication-method: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_AUTHENTICATION_METHOD} + client-name: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_NAME} + client-id: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_ID} + client-secret: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_CLIENT_SECRET} + redirect-uri: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_REDIRECT_URI} + authorization-grant-type: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_AUTHORIZATION_GRANT_TYPE} + scope: ${SECURITY_OAUTH2_CLIENT_REGISTRATION_KAKAO_SCOPE} provider: kakao: - authorization-uri: https://kauth.kakao.com/oauth/authorize - token-uri: https://kauth.kakao.com/oauth/token - user-info-uri: https://kapi.kakao.com/v2/user/me - user-name-attribute: id + authorization-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_AUTHORIZATION_URI} + token-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_TOKEN_URI} + user-info-uri: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_INFO_URI} + user-name-attribute: ${SECURITY_OAUTH2_PROVIDER_KAKAO_USER_NAME_ATTRIBUTE} jwt: - secret: vmfhaltmskdlstkfkdgodyroqkfwkdbalroqkfwkdbalaaaaaaaaaaaaaaaabbbbb - + secret: ${JWT_SECRET} elice: api: - token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NDA1NDYyMjgsIm5iZiI6MTc0MDU0NjIyOCwiZXhwIjoxNzUwNDYzOTk5LCJrZXlfaWQiOiJjYzI2YjZjMi0zNWExLTQ0NmEtODhkYS02ZjdkZGExNDMzYWMifQ.tqRvmEibKaRZUJK9m7pp7ZOWsdzy2rGg8YxjQ1MrSDk + token: ${API_TOKEN} url: - face: https://api-cloud-function.elice.io/d5ff1aef-c59f-433c-8e1c-f9b52ac4ab6a/predict - img: https://api-cloud-function.elice.io/0133c2f7-9f3f-44b6-a3d6-c24ba8ef4510/generate - chat: null - + face: ${FACE_URL} + img: ${IMG_URL} + chat: ${CHAT_URL} emotion: api: - url: null + url: ${EMOTION_URL} \ No newline at end of file