[Spring] URL 뒤에 의도치 않은 ?continue 이야기

푸른별·2023년 8월 27일
0

Web

목록 보기
13/16
post-thumbnail

1. 의문점 발생

우선 필자는 자바17, 스프링 3.0이상의 버전을 사용하여 스프링 시큐리티 관련 학습을 하고 있었습니다.
그런데 시큐리티 로그인 진행과정 중 다음과 같이 평소와는 다른 url이 보여 왜 이렇게 뜨는지 의문점이 생기게 되었습니다.

잘 보시면 url에 user뒤로 ?continue가 갑자기 뜨는데, 이는 제가 별도로 설정한 것이 아니었고 코드에 어떠한 곳에도 continue는 없었기에 당황스러웠습니다.

코드만 보고서는 별 차도가 없는 이유로 스프링 부트 공식문서와 구글링을 통해 빠르게 찾아봤는데, 스프링 시큐리티가 6.x로 업그레이드되면서(스프링부트 3.x) 안정성을 추구하며 발생한 일이었습니다.
따라서 공식문서와 StackOverFlow를 확인하여 어떻게 해결해야 할지 생각해봤습니다.

2. 코드 수정

따라서 다음과 같이 공식문서를 조금 변형하여 코드를 작성하였습니다.(continue가 지금은 필요없는 학습단계이므로)

Before

After

3. 결과

Before

After

이렇게 ?continue가 뒤에 붙여지는 문제 아닌 문제를 해결하였습니다.

엄밀하게는 시큐리티 버전이 올라가며 안정성을 챙긴 것이지만, 디폴트 값으로 받아들이기 싫다면 "null"을 대입하면 되는 간단한 문제였습니다.

  • 스프링 시큐리티 6에서 HttpSession과 RequestCache에서 불필요한 읽기를 피하기 위해 고안된 새로운 방법이라고 하니, 실무적인 경우라면 이 기능을 사용하는 게 안정적일 것으로 생각합니다.(단순 학습일 때만 빼는 정도가 가장 좋겠네요)

4. Reference

https://docs.spring.io/spring-security/reference/5.8/migration/servlet/session-management.html#requestcache-query-optimization
https://stackoverflow.com/questions/75222930/spring-boot-3-0-2-adds-continue-query-parameter-to-request-url-after-login

profile
묵묵히 꾸준하게

0개의 댓글