11 KiB
title, source_type, url, archive_url, related_branches, related_projects, tags, created
| title | source_type | url | archive_url | related_branches | related_projects | tags | created | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| official-doc / Spring Boot `Cookie.SameSite` enum Javadoc — accepted SameSite attribute values | official-doc | https://docs.spring.io/spring-boot/api/java/org/springframework/boot/web/server/Cookie.SameSite.html |
|
|
|
2026-07-25 |
official-doc / Spring Boot Cookie.SameSite enum Javadoc — accepted SameSite attribute values
Layer:
raw/— 외부 자료(공식 문서 / 대기업 기술 블로그)의 원문 발췌·출처 기록. 본 템플릿은raw/official-docs/와raw/company-tech-blogs/두 폴더가 공유. 검증된 요약은/ingest후wiki/concepts/에source-summary-template형식으로 별도 작성. 원본은 raw에 영구 보관.
source_type 허용값
official-doc — Spring Boot Javadoc API 레퍼런스 (Spring Boot 4.1.0, docs.spring.io 호스팅).
Parent / 활용 branch
| Branch | 이 자료가 정당화하는 결정 |
|---|---|
| raw/branch-notes/feature-keycloak-bff-csrf-samesite-defense | D3 — server.servlet.session.cookie.same-site 프로퍼티가 바인딩하는 Cookie.SameSite enum 의 실제 허용값(OMITTED/NONE/LAX/STRICT)과 각 값의 의미를 정의. [[raw/official-docs/spring-boot-session-cookie-samesite-property-official]] (application-properties 부록 페이지)가 이 값들을 열거하지 않아 남긴 L0→L1 갭을 메움 — D3 에서 선택한 lax 문자열이 실제로 어떤 enum 상수·동작에 대응하는지의 근거. |
출처
- 원본 URL: https://docs.spring.io/spring-boot/api/java/org/springframework/boot/web/server/Cookie.SameSite.html
- 아카이브 URL: (미확보)
- 저자 / 조직: Spring Boot 프로젝트 (Javadoc
@author: Phillip Webb, Andy Wilkinson, Brian Clozel, Weix Sun) - 발행일: 불명(Javadoc 생성 시점,
Since: 2.6.0부터 존재하는 API — 페이지 자체는 최신 문서 빌드 시점 자동 생성) - 확인된 문서 버전: Spring Boot 4.1.0 API (페이지
<title>배너 — "current" 경로가 가리키는 최신 버전이며, branch 가 실제 채택한 Spring Boot 버전과 별도 확인 필요할 수 있음) - 마지막 확인일: 2026-07-25
왜 저장했는지
raw/official-docs/spring-boot-session-cookie-samesite-property-official (application-properties 부록)는 server.servlet.session.cookie.same-site 프로퍼티의 존재만 문서화하고 허용값을 열거하지 않는 L0→L1 갭이 있었다. 이 Javadoc 페이지는 그 프로퍼티가 바인딩하는 Cookie.SameSite enum 의 상수 4개(OMITTED/NONE/LAX/STRICT)와 각각의 정확한 의미를 원문으로 정의하므로, D3(SameSite=Lax 선택)가 실제로 무엇을 선택한 것인지 문자 그대로 뒷받침한다.
핵심 인용
[Class-level description, line 102] "SameSite values."
[Enum Constant Detail — OMITTED, line 199] "SameSite attribute will be omitted when creating the cookie."
[Enum Constant Detail — NONE, lines 208–209] "SameSite attribute will be set to None. Cookies are sent in both first-party and cross-origin requests."
[Enum Constant Detail — LAX, lines 218–219] "SameSite attribute will be set to Lax. Cookies are sent in a first-party context, also when following a link to the origin site."
[Enum Constant Detail — STRICT, lines 228–229] "SameSite attribute will be set to Strict. Cookies are only sent in a first-party context (i.e. not when following a link to the origin site)."
Claims Extracted / 추출된 주장
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|---|---|---|---|---|---|
| SPRINGBOOT-COOKIE-SAMESITE-ENUM-C1 | org.springframework.boot.web.server.Cookie.SameSite 는 "SameSite values"(쿠키의 SameSite 속성 값)를 나타내는 enum class 이며, 정확히 4개의 상수(OMITTED, NONE, LAX, STRICT)로 구성된다 (Since: 2.6.0). |
[class-level, line 102] "SameSite values." + Enum Constant Summary 4-row table (lines 130–145: LAX/NONE/OMITTED/STRICT) |
official-vendor-doc |
Spring Boot 가 쿠키의 SameSite 속성을 표현하는 Java enum 의 리터럴 허용 상수 집합 | 이 enum 이 server.servlet.session.cookie.same-site 프로퍼티의 문자열(lax/strict/none)과 어떻게 바인딩되는지(대소문자 처리, OMITTED에 대응하는 프로퍼티 문자열 존재 여부)는 이 페이지에 명시되지 않음 |
| SPRINGBOOT-COOKIE-SAMESITE-ENUM-C2 | OMITTED 상수는 "쿠키 생성 시 SameSite 속성 자체를 생략한다"는 의미다. |
[OMITTED detail, line 199] "SameSite attribute will be omitted when creating the cookie." | official-vendor-doc |
SameSite 헤더 속성을 아예 붙이지 않는 explicit opt-out 동작 정의 | 이 상수가 실제 어떤 상황에서 기본값으로 쓰이는지(예: 미설정 시 기본값이 OMITTED인지)는 이 페이지에서 확인 불가 |
| SPRINGBOOT-COOKIE-SAMESITE-ENUM-C3 | NONE 상수는 SameSite 를 None 으로 설정하며, "쿠키가 first-party 요청과 cross-origin 요청 모두에서 전송된다"고 정의한다. |
[NONE detail, lines 208–209] "SameSite attribute will be set to None. Cookies are sent in both first-party and cross-origin requests." | official-vendor-doc |
None 값의 전송 범위(모든 컨텍스트) 정의 |
Secure 속성 강제 여부·브라우저별 None+미-Secure 거부 동작은 이 페이지가 다루지 않음(그 근거는 별도 official-doc — MDN/RFC 6265bis 쪽) |
| SPRINGBOOT-COOKIE-SAMESITE-ENUM-C4 | LAX 상수는 SameSite 를 Lax 로 설정하며, "쿠키가 first-party 컨텍스트에서, 그리고 origin site 로 이어지는 링크를 따라갈 때도 전송된다"고 정의한다. |
[LAX detail, lines 218–219] "SameSite attribute will be set to Lax. Cookies are sent in a first-party context, also when following a link to the origin site." | official-vendor-doc |
Lax 값이 same-site 요청 + "링크를 따라가는" cross-site top-level navigation 에서 쿠키를 전송함을 정의 — D3 의 Keycloak redirect 콜백 호환성 판단의 문언 근거 |
이 문장이 "링크를 따라가는" 것을 GET 요청으로 한정한다고 명시하지 않음 — top-level POST(form_post) 콜백이 이 범주에 포함되는지는 이 페이지 문언만으로 확정 불가(그 경계는 RFC6265BIS-SAMESITE-C5 가 별도로 규정) |
| SPRINGBOOT-COOKIE-SAMESITE-ENUM-C5 | STRICT 상수는 SameSite 를 Strict 로 설정하며, "쿠키가 first-party 컨텍스트에서만 전송되며(즉 origin site 로 이어지는 링크를 따라갈 때는 전송되지 않음)"이라고 정의한다. |
[STRICT detail, lines 228–229] "SameSite attribute will be set to Strict. Cookies are only sent in a first-party context (i.e. not when following a link to the origin site)." | official-vendor-doc |
Strict 값이 cross-site top-level navigation(링크 클릭 포함)에서도 쿠키를 배제함을 정의 — D3 에서 Strict 를 기각한 근거(Keycloak 콜백 미전송 위험)의 문언 뒷받침 |
이 문장만으로 "이 동작이 모든 브라우저에서 동일하게 구현된다"는 보장은 없음(브라우저 구현 세부는 이 페이지 범위 밖) |
Strength 허용값
official-standard— RFC, 표준 사양, 언어/프로토콜 표준official-vendor-doc— Spring, Keycloak, AWS, Google 등 공식 벤더 문서 (본 문서 전 claim 해당)official-reference— 공식 reference/API 문서company-case-study— 대기업/실무 기술 블로그의 특정 사례engineering-blog— 개인/팀 블로그의 엔지니어링 해설tutorial— 튜토리얼/가이드. 일반화 금지needs-confirmation— 원문만으로는 적용 판단 불가
Usage Boundaries / 적용 경계
- 이 자료가 직접 증명하는 것:
SPRINGBOOT-COOKIE-SAMESITE-ENUM-C1:Cookie.SameSiteenum 이 정확히 4개 상수(OMITTED/NONE/LAX/STRICT)로 구성됨.C2~C5: 각 상수의 Spring Boot 공식 문언 정의(어떤 컨텍스트에서 쿠키가 전송/생략되는지).
- 이 자료가 증명하지 않는 것:
server.servlet.session.cookie.same-site프로퍼티의 문자열 값(lax/strict/none)이 이 enum 상수로 어떻게 매핑되는지(대소문자·바인딩 메커니즘) — 이 페이지엔 프로퍼티 이름 자체가 등장하지 않음.- 프로퍼티 미설정 시 기본값(default) — 이 페이지는 enum 정의 문서일 뿐 기본값을 선언하지 않음(sibling 문서
spring-boot-session-cookie-samesite-property-official도 동일 갭이 있다고 기록됨 — 두 문서 모두 기본값 미확보). - Spring Session(Redis 등) 구현체가 이 프로퍼티를 실제로 존중하는지 — branch-note 의 open risk (3)은 이 페이지로 해소되지 않음.
- "링크를 따라갈 때"(LAX 상수 설명)가 GET 만을 의미하는지 POST
form_post콜백까지 포함하는지 — RFC 6265bis 쪽 근거(RFC6265BIS-SAMESITE-C5)로 보완 필요.
- 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
- AP3 Keycloak client 의 실제
response_mode(GET redirect vsform_post) 확인 후에만 D3 의Lax선택이 실제로 안전한지 최종 확정 가능(branch-note 이미 명시된 open risk).
- AP3 Keycloak client 의 실제
메모
- 이 Javadoc 페이지는
server.servlet.session.cookie.same-site프로퍼티 이름을 직접 언급하지 않는다 — "이 enum 이 그 프로퍼티가 바인딩하는 타입"이라는 연결은 Spring Boot 패키지 구조(org.springframework.boot.web.server.Cookie.SameSite)와 sibling 문서(spring-boot-session-cookie-samesite-property-official)의 프로퍼티 설명을 통한 추론이며, 이 페이지 자체가 그 바인딩을 선언하지 않는다는 점을 Usage Boundaries에 명시함. - 페이지 버전 배너가 "Spring Boot 4.1.0 API"로 표시됨 —
docs.spring.io/spring-boot/api/java/...경로는 버전 미고정("current") 경로일 가능성이 있어, branch 가 실제 사용하는 Spring Boot 버전과 다를 수 있음. 필요 시 버전 고정 경로(docs.spring.io/spring-boot/docs/<version>/api/...)로 재확인 권장. attributeValue()메서드는@Nullable String을 반환한다고만 되어 있고 별도 설명(<div class="block">)이 없음 — 인용 대상에서 제외.
관련
- 같은 주제 다른 official-doc:
[[raw/official-docs/spring-boot-session-cookie-samesite-property-official]]—server.servlet.session.cookie.same-site프로퍼티 존재 자체의 근거(허용값 미열거 갭의 원본)[[raw/official-docs/rfc6265bis-samesite-attribute-ietf]]— SameSite 속성의 표준(IETF Internet-Draft) 정의,Lax/top-level POST 콜백 경계[[raw/official-docs/samesite-set-cookie-mdn-official]]— MDN 서술[[raw/official-docs/csrf-prevention-cheat-sheet-owasp-samesite-official]]— OWASP defense-in-depth 프레이밍
- 이 자료를 인용한 wiki 요약: (아직 생성 안 됨)