Skip to content

Commit 9e770d1

Browse files
authored
refactor: 쿠키 정책 변경 - 환경에 따른 Domain과 SameSite=Lax (#461)
* style: 불필요한 개행 제거 - 두 줄이 개행되어있었다. * refactor: SameSite를 Lax로 고정 * refactor: Domain에 따라 SameSite분기하던 코드 제거 * chore: 서브모듈 업데이트
1 parent e7fd1d4 commit 9e770d1

File tree

5 files changed

+6
-53
lines changed

5 files changed

+6
-53
lines changed

src/main/java/com/example/solidconnection/auth/controller/RefreshTokenCookieManager.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import jakarta.servlet.http.HttpServletResponse;
1111
import java.util.Arrays;
1212
import lombok.RequiredArgsConstructor;
13+
import org.springframework.boot.web.server.Cookie.SameSite;
1314
import org.springframework.http.HttpHeaders;
1415
import org.springframework.http.ResponseCookie;
1516
import org.springframework.stereotype.Component;
@@ -46,7 +47,7 @@ private void setRefreshTokenCookie(
4647
.path(PATH)
4748
.maxAge(maxAge)
4849
.domain(properties.cookieDomain())
49-
.sameSite(properties.sameSite())
50+
.sameSite(SameSite.LAX.attributeValue())
5051
.build();
5152
response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
5253
}
@@ -72,4 +73,3 @@ public String getRefreshToken(HttpServletRequest request) {
7273
return refreshToken;
7374
}
7475
}
75-
Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,10 @@
11
package com.example.solidconnection.auth.controller.config;
22

33
import org.springframework.boot.context.properties.ConfigurationProperties;
4-
import org.springframework.boot.web.server.Cookie.SameSite;
54

65
@ConfigurationProperties(prefix = "token.refresh")
76
public record RefreshTokenCookieProperties(
87
String cookieDomain
98
) {
109

11-
public String sameSite() {
12-
if (isDomainSet()) {
13-
return SameSite.STRICT.attributeValue(); // 도메인을 지정한 경우 SameSite=Strict
14-
}
15-
return SameSite.NONE.attributeValue(); // 도메인을 지정하지 않은 경우 SameSite=None
16-
}
17-
18-
private boolean isDomainSet() {
19-
return cookieDomain != null && !cookieDomain.isBlank();
20-
}
2110
}

src/main/resources/secret

src/test/java/com/example/solidconnection/auth/controller/RefreshTokenCookieManagerTest.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import org.junit.jupiter.params.provider.ValueSource;
2020
import org.springframework.beans.factory.annotation.Autowired;
2121
import org.springframework.boot.test.mock.mockito.MockBean;
22+
import org.springframework.boot.web.server.Cookie.SameSite;
2223
import org.springframework.mock.web.MockHttpServletRequest;
2324
import org.springframework.mock.web.MockHttpServletResponse;
2425

@@ -34,13 +35,11 @@ class RefreshTokenCookieManagerTest {
3435
@MockBean
3536
private RefreshTokenCookieProperties refreshTokenCookieProperties;
3637

37-
private final String sameSite = "Strict";
3838
private final String domain = "example.com";
3939

4040
@BeforeEach
4141
void setUp() {
4242
given(refreshTokenCookieProperties.cookieDomain()).willReturn(domain);
43-
given(refreshTokenCookieProperties.sameSite()).willReturn(sameSite);
4443
}
4544

4645
@Test
@@ -62,7 +61,7 @@ void setUp() {
6261
() -> assertThat(header).contains("Path=/"),
6362
() -> assertThat(header).contains("Max-Age=" + TokenType.REFRESH.getExpireTime() / 1000),
6463
() -> assertThat(header).contains("Domain=" + domain),
65-
() -> assertThat(header).contains("SameSite=" + sameSite)
64+
() -> assertThat(header).contains("SameSite=" + SameSite.LAX.attributeValue())
6665
);
6766
}
6867

@@ -84,7 +83,7 @@ void setUp() {
8483
() -> assertThat(header).contains("Path=/"),
8584
() -> assertThat(header).contains("Max-Age=0"),
8685
() -> assertThat(header).contains("Domain=" + domain),
87-
() -> assertThat(header).contains("SameSite=" + sameSite)
86+
() -> assertThat(header).contains("SameSite=" + SameSite.LAX.attributeValue())
8887
);
8988
}
9089

src/test/java/com/example/solidconnection/auth/controller/config/RefreshTokenCookiePropertiesTest.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)