springboot 크로스 도 메 인 은 SameSite 의 실현 을 어떻게 설정 합 니까?

머리말
오늘 은 얼마 전에 만난 작은 문제 의 해결 방법 을 기록 합 니 다.도 메 인 을 뛰 어 넘 습 니 다!!
크로스 오 버 라 는 문 제 를 믿 습 니 다.개발 을 하 는 사람 이 많 든 적 든 만 났 습 니 다.그리고 많은 블 로 거들 이 관련 내용 을 공 유 했 습 니 다.이번 에는 제 가 그들의 방식 으로 해결 하지 못 했 기 때문에 기록 해 보 겠 습 니 다.
문제.
우리 회 사 는 메 인 시스템 의 도 메 인 이름과 일치 하지 않 는 시스템 이 있 습 니 다.그러나 우 리 는 모든 시스템 을 하나의 프레임 워 크 아래 에 통합 시 켜 야 합 니 다.iframe 기술 을 사용 하여 이 루어 집 니 다.단일 로그 인 을 사용 하여 모든 시스템 의 로그 인 을 해 야 합 니 다.이러한 디자인 으로 인해 우 리 는 도 메 인 이름 이 다른 시스템 을 방문 할 때 도 메 인 을 뛰 어 넘 는 문제 가 발생 합 니 다.일반적인 해결 방식 은 이렇게 됩 니 다.springboot 에 크로스 도 메 인 차단 기 를 설치 하면 크로스 도 메 인 접근 을 실현 할 수 있 습 니 다.

그러나,그러나,우 리 는 이 설정 을 사용 한 후에 도 로그 인 을 실현 할 수 없습니다.가장 뚜렷 한 문 제 는 매번 요청 하 는 sessionid 가 다 릅 니 다.같은 페이지 의 여러 요청 이라도 sessionid 는 다 릅 니 다.그러면 우 리 는 session 을 통 해 세 션 을 유지 할 수 없습니다.
해결 방법
노부 의 끊 임 없 는 구 글 을 통 해 처음에 문제 가 된 이 유 는 구 글 브 라 우 저의 SameSite 속성 때 문 입 니 다.Chrome 51 을 시작 으로 브 라 우 저의 Cookie 는 CSRF 공격 과 사용자 추적 을 방지 하기 위해 SameSite 속성 을 새로 추 가 했 습 니 다.이 속성 은 세 개의 값 이 있 습 니 다.구체 적 인 소 개 는 이 글 에서 상세 하 게 말 한 것 을 볼 수 있 습 니 다.
우리 가 선택 한 것 은 이 속성 을 직접 닫 고 None 로 설정 하 는 것 입 니 다.이렇게:

response.setHeader("Set-Cookie", "SameSite=None;Secure;JSESSIONID=xxx");
주의 하 세 요.위의 코드 에 구덩이 가 있 습 니 다.
이렇게 설정 할 때 우리 가 기대 하 는 것 은 요청 이 있 으 면 쿠키 에 JSESSIONID 를 설정 할 수 있 습 니 다.그러나 우리 가 기대 하 는 효 과 를 얻 지 못 했 습 니 다.
노부 의 머리카락 을 다 잡 으 려 고 할 때 위의그 문장을 반복 해서 읽 은 후에 노 부 는 시도 하 는 마음으로 위의 코드 를 바 꾸 었 습 니 다.다음 과 같 습 니 다.
response.setHeader("Set-Cookie", "JSESSIONID=xxx;SameSite=None;Secure");
자세히 보 니 JSESSIONID 의 위치 가 바 뀌 었 습 니 다.그리고 성 공 했 습 니 다.하늘 아~대지 야~한 자리 에 불과 하 네요~~~~~~~~~
springboot 크로스 도 메 인 에 Same Site 를 어떻게 설정 하 는 지 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 spring boot 크로스 도 메 인 에 Same Site 를 설정 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 저 희 를 많이 사랑 해 주세요!

좋은 웹페이지 즐겨찾기