Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import jakarta.servlet.http.HttpServletResponse;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import org.springframework.boot.web.server.Cookie.SameSite;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseCookie;
import org.springframework.stereotype.Component;
Expand Down Expand Up @@ -46,7 +47,7 @@ private void setRefreshTokenCookie(
.path(PATH)
.maxAge(maxAge)
.domain(properties.cookieDomain())
.sameSite(properties.sameSite())
.sameSite(SameSite.LAX.attributeValue())
.build();
response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
}
Expand All @@ -72,4 +73,3 @@ public String getRefreshToken(HttpServletRequest request) {
return refreshToken;
}
}

Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
package com.example.solidconnection.auth.controller.config;

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.web.server.Cookie.SameSite;

@ConfigurationProperties(prefix = "token.refresh")
public record RefreshTokenCookieProperties(
String cookieDomain
) {

public String sameSite() {
if (isDomainSet()) {
return SameSite.STRICT.attributeValue(); // 도메인을 지정한 경우 SameSite=Strict
}
return SameSite.NONE.attributeValue(); // 도메인을 지정하지 않은 경우 SameSite=None
}

private boolean isDomainSet() {
return cookieDomain != null && !cookieDomain.isBlank();
}
}
2 changes: 1 addition & 1 deletion src/main/resources/secret
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
import org.junit.jupiter.params.provider.ValueSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.boot.web.server.Cookie.SameSite;
import org.springframework.mock.web.MockHttpServletRequest;
import org.springframework.mock.web.MockHttpServletResponse;

Expand All @@ -34,13 +35,11 @@ class RefreshTokenCookieManagerTest {
@MockBean
private RefreshTokenCookieProperties refreshTokenCookieProperties;

private final String sameSite = "Strict";
private final String domain = "example.com";

@BeforeEach
void setUp() {
given(refreshTokenCookieProperties.cookieDomain()).willReturn(domain);
given(refreshTokenCookieProperties.sameSite()).willReturn(sameSite);
}

@Test
Expand All @@ -62,7 +61,7 @@ void setUp() {
() -> assertThat(header).contains("Path=/"),
() -> assertThat(header).contains("Max-Age=" + TokenType.REFRESH.getExpireTime() / 1000),
() -> assertThat(header).contains("Domain=" + domain),
() -> assertThat(header).contains("SameSite=" + sameSite)
() -> assertThat(header).contains("SameSite=" + SameSite.LAX.attributeValue())
);
}

Expand All @@ -84,7 +83,7 @@ void setUp() {
() -> assertThat(header).contains("Path=/"),
() -> assertThat(header).contains("Max-Age=0"),
() -> assertThat(header).contains("Domain=" + domain),
() -> assertThat(header).contains("SameSite=" + sameSite)
() -> assertThat(header).contains("SameSite=" + SameSite.LAX.attributeValue())
);
}

Expand Down

This file was deleted.

Loading