SameSite 문제 허용 설정

간단한 예로 외부 도메인에서 나의 도메인으로 POST 로 호출 할 경우 기존 나의 도메인 쿠키가 유지되지 않는 문제.
나의 경우문제 : 나의 도메인  -> 외부도메인 팝업 호출 -> 외부도메인에서 나의 도메인에 결과값을 넣어 POST로 호출
      - 이 경우 예전에는 브라우저에 나의 세션쿠키 정보가 남아 있어 누구의 결과값인지 바로 확인가 가능 했으나.
      - 크롬 80? 부터는 외부 도메인에서 POST로  호출지 쿠키 정보가 삭제됨.
              ( SameSite 속성의 기본 값을 "None"에서 "Lax"로 변경한 것 때문)
      - 이로인해 세션쿠키가 새로 발급되어 내가 누구인지를 읽어버림

그래서 외부 도메인의 POST 호출을 허용하긴위해서 SameSite ="None"으로 설정해야 합니다.
예시....

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {


	@Bean
	public CookieSerializer cookieSerializer() {
		DefaultCookieSerializer serializer = new DefaultCookieSerializer();
		serializer.setCookieName("SESSION");
		
		serializer.setSameSite("None");
		serializer.setUseSecureCookie(true);
		return serializer;
	}


}

단 : None 설정시 http에서는 적용되지 않고 https(SSL) 적용된 경우만 적용이 된다고 합니다. (localhost는 적용됨)

자세한 사항은 제가 참고 했던 사이트를 확인해 주세요. ^^
아 그리고 부트 2.6 부터는 applications.yml 설정이 가능한 것 같습니다. 
저는 낮은 버전을 쓰고 있고. 버전을 올릴 수 없는 상태라 ^^

https://shanepark.tistory.com/349
 * https://github.com/spring-projects/spring-session/issues/1577
 * https://cublip.tistory.com/336

https://seob.dev/posts/%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%BF%A0%ED%82%A4%EC%99%80-SameSite-%EC%86%8D%EC%84%B1/

 

Spring security 5.1.x에서 Crossorigin에서 요청시(결제모듈 등..) session cookie('SESSION' value) 초기화로 로그

spring boot를 2.1 이상으로 업데이트 하니(spring security 5.1 이상) lg uplus 결제모듈 호출 후 리턴값 받고나서 계속 로그인이 튕겨서 보니 세션값이 있는 쿠키가 계속 삭제되더라구요.. cors, csrf문제인가

cublip.tistory.com

 

Spring Session과 Cookie SameSite 정책

Intro SpringBoot 1.5 버전에서 2.5 버전으로 마이그레이션 작업이 대부분 완료 되었는데 SAML을 이용한 SSO 로그인 부분에서 굉장히 오래동안 해결하지 못하던 문제가 있었습니다. 분명 해당 부분의 코

shanepark.tistory.com

 

 

반응형

+ Recent posts