diff --git a/src/main/java/roomescape/auth/web/support/CookieUtils.kt b/src/main/java/roomescape/auth/web/support/CookieUtils.kt index bedcaf11..22eebd37 100644 --- a/src/main/java/roomescape/auth/web/support/CookieUtils.kt +++ b/src/main/java/roomescape/auth/web/support/CookieUtils.kt @@ -2,26 +2,25 @@ package roomescape.auth.web.support import jakarta.servlet.http.Cookie import jakarta.servlet.http.HttpServletRequest -import jakarta.servlet.http.HttpServletResponse +import org.springframework.http.ResponseCookie import roomescape.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) -} +fun TokenResponse.toResponseCookie(): String = accessTokenCookie(this.accessToken, 1800) + .toString() + +fun expiredAccessTokenCookie(): String = accessTokenCookie("", 0) + .toString() + +private fun accessTokenCookie(token: String, maxAgeSecond: Long): ResponseCookie = + ResponseCookie.from(ACCESS_TOKEN_COOKIE_NAME, token) + .httpOnly(true) + .secure(true) + .path("/") + .maxAge(maxAgeSecond) + .build()