From 636a4abe6be3d1085a3a7292630404e70e571378 Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 13 Jul 2025 20:32:55 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=BF=A0=ED=82=A4=20=EA=B4=80=EB=A0=A8?= =?UTF-8?q?=20=ED=99=95=EC=9E=A5=ED=95=A8=EC=88=98=EA=B0=80=20=EC=A0=95?= =?UTF-8?q?=EC=9D=98=EB=90=9C=20=EC=9C=A0=ED=8B=B8=20=ED=81=B4=EB=9E=98?= =?UTF-8?q?=EC=8A=A4=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/auth/web/support/CookieUtils.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 src/main/java/roomescape/system/auth/web/support/CookieUtils.kt diff --git a/src/main/java/roomescape/system/auth/web/support/CookieUtils.kt b/src/main/java/roomescape/system/auth/web/support/CookieUtils.kt new file mode 100644 index 00000000..77d33b44 --- /dev/null +++ b/src/main/java/roomescape/system/auth/web/support/CookieUtils.kt @@ -0,0 +1,27 @@ +package roomescape.system.auth.web.support + +import jakarta.servlet.http.Cookie +import jakarta.servlet.http.HttpServletRequest +import jakarta.servlet.http.HttpServletResponse +import roomescape.system.auth.web.TokenResponse + +const val ACCESS_TOKEN_COOKIE_NAME = "accessToken" + +fun Cookie.expire(): Unit { + this.value = "" + this.maxAge = 0 +} + +fun TokenResponse.toCookie(): Cookie = Cookie(ACCESS_TOKEN_COOKIE_NAME, this.accessToken) + .also { it.maxAge = 1800000 } + +fun HttpServletRequest.accessTokenCookie(): Cookie = this.cookies + ?.firstOrNull { it.name == ACCESS_TOKEN_COOKIE_NAME } + ?: Cookie(ACCESS_TOKEN_COOKIE_NAME, "") + +fun HttpServletResponse.addAccessTokenCookie(cookie: Cookie) { + cookie.isHttpOnly = true + cookie.secure = true + cookie.path = "/" + this.addCookie(cookie) +}