Files
llm-wiki/raw/official-docs/spring-boot-cookie-samesite-enum-javadoc-official.md

11 KiB
Raw Permalink Blame History

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
feature-keycloak-bff-csrf-samesite-defense
keycloak-patterns-overview
official-doc
keycloak-patterns
auth
spring-boot
samesite
2026-07-25

official-doc / Spring Boot Cookie.SameSite enum Javadoc — accepted SameSite attribute values

Layer: raw/ — 외부 자료(공식 문서 / 대기업 기술 블로그)의 원문 발췌·출처 기록. 본 템플릿은 raw/official-docs/raw/company-tech-blogs/ 두 폴더가 공유. 검증된 요약은 /ingestwiki/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 208209] "SameSite attribute will be set to None. Cookies are sent in both first-party and cross-origin requests."

[Enum Constant Detail — LAX, lines 218219] "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 228229] "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 130145: 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 208209] "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 218219] "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 228229] "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.SameSite enum 이 정확히 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 vs form_post) 확인 후에만 D3 의 Lax 선택이 실제로 안전한지 최종 확정 가능(branch-note 이미 명시된 open risk).

메모

  • 이 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 요약: (아직 생성 안 됨)