Skip to content

Commit

Permalink
[feat #203] �프론트 환경에 따른 JWT 쿠키 설정 자동 변경 (#209)
Browse files Browse the repository at this point in the history
* [feat #203] @Profile을 이용한 쿠키 생성 반자동 변경

* [fix #203] @component 추가로 빈 등록 에러 해결
  • Loading branch information
dudxo authored Feb 10, 2025
1 parent c3654ea commit add573d
Show file tree
Hide file tree
Showing 5 changed files with 77 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.dnd.gongmuin.security.jwt.util;

import jakarta.servlet.http.Cookie;

public interface CookieConfig {

public Cookie createCookie(String token);
}
11 changes: 3 additions & 8 deletions src/main/java/com/dnd/gongmuin/security/jwt/util/CookieUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,10 @@
@RequiredArgsConstructor
public class CookieUtil {

private final CookieConfig cookieConfig;

public Cookie createCookie(String token) {
Cookie cookie = new Cookie("Authorization", token);
cookie.setPath("/");
cookie.setDomain("gongmuin.site");
cookie.setMaxAge(60 * 60);
cookie.setHttpOnly(true);
cookie.setSecure(true);
cookie.setAttribute("SameSite", "Strict");
return cookie;
return cookieConfig.createCookie(token);
}

public String getCookieValue(HttpServletRequest request) {
Expand Down
22 changes: 22 additions & 0 deletions src/main/java/com/dnd/gongmuin/security/jwt/util/DevCookie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.dnd.gongmuin.security.jwt.util;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

import jakarta.servlet.http.Cookie;

@Component
@Profile("dev")
public class DevCookie implements CookieConfig {
@Override
public Cookie createCookie(String token) {
Cookie cookie = new Cookie("Authorization", token);
cookie.setPath("/");
cookie.setDomain("gongmuin.site");
cookie.setMaxAge(60 * 60);
cookie.setHttpOnly(true);
cookie.setSecure(true);
cookie.setAttribute("SameSite", "Strict");
return cookie;
}
}
22 changes: 22 additions & 0 deletions src/main/java/com/dnd/gongmuin/security/jwt/util/LocalCookie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.dnd.gongmuin.security.jwt.util;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

import jakarta.servlet.http.Cookie;

@Component
@Profile("local")
public class LocalCookie implements CookieConfig {

@Override
public Cookie createCookie(String token) {
Cookie cookie = new Cookie("Authorization", token);
cookie.setPath("/");
cookie.setMaxAge(60 * 60);
cookie.setHttpOnly(false);
cookie.setSecure(false);
cookie.setAttribute("SameSite", "None");
return cookie;
}
}
22 changes: 22 additions & 0 deletions src/main/java/com/dnd/gongmuin/security/jwt/util/ProdCookie.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.dnd.gongmuin.security.jwt.util;

import org.springframework.context.annotation.Profile;
import org.springframework.stereotype.Component;

import jakarta.servlet.http.Cookie;

@Component
@Profile("prod")
public class ProdCookie implements CookieConfig {
@Override
public Cookie createCookie(String token) {
Cookie cookie = new Cookie("Authorization", token);
cookie.setPath("/");
cookie.setDomain("gongmuin.site");
cookie.setMaxAge(60 * 60);
cookie.setHttpOnly(true);
cookie.setSecure(true);
cookie.setAttribute("SameSite", "Strict");
return cookie;
}
}

0 comments on commit add573d

Please sign in to comment.