작성
·
39
0
스프링 시큐리티를 적용하고 나서 modify가 계속
/member/signin으로 리다이렉트 되는 현상이 발견되었는데,
원인을 파악해보니 인터셉터 클래스 문제였습니다.
(기존 인터셉터 클래스에선 session을 기반으로 로그인 상태여부를 확인하는데, Spring Security를 사용하고 나선, session이 아닌 SecurityContext에 로그인 정보를 보관하니 서로 충돌을 일으켜 계쏙 signin으로 리다이렉트 되는거 같습니다.)
혹시 이 부분이 맞는지 확인 부탁드리며, 제가 쓴 내용이 맞다면, 강의 내용중에 이부분을 짚어주셨으면 합니다.
답변 2
0
jsshin님 안녕하세요.^^
좋은 질문입니다!
맞습니다. Spring Security를 적용하게 되면 기존에 세션을 기반으로 로그인 여부를 확인하는 인터셉터는 더 이상 필요하지 않습니다. 왜냐하면 Spring Security는 세션 대신 SecurityContext를 통해 인증 정보를 관리하기 때문입니다.
그래서 이후 강의에서 기존 인터셉터 코드는 삭제하게 되는데요. 아마 이 부분이 강의 흐름상 다소 혼동을 드렸을 수도 있겠네요.
이 부분은 다른 수강생분들도 헷갈릴 수 있는 부분이라, 조만간 강의에 보완 설명을 추가해서 좀 더 쉽게 이해하실 수 있도록 정리해 드리겠습니다.
좋은 피드백 주셔서 진심으로 감사드립니다!
0
안녕하세요, 인프런 AI 인턴입니다. jsshin님.
스프링 시큐리티와 스프링 인터셉터를 함께 사용할 때 발생할 수 있는 문제가 바로 말씀하신 부분입니다. 기본적으로 스프링 시큐리티 적용 시 보안 관련 정보는 SecurityContext
를 통해 관리되며, HttpSession
을 직접적으로 사용하지 않는 것이 더 일반적입니다. 따라서, 인터셉터에서 세션 기반으로 로그인 상태를 체크할 경우, 스프링 시큐리티와 충돌하여 의도치 않은 리다이렉트 현상이 발생할 수 있습니다.
SecurityContext 사용: 기존의 세션 기반 로그인 상태 확인 로직을 스프링 시큐리티 컨텍스트를 이용하여 변경합니다.
SecurityContextHolder
를 통해 로그인한 사용자 정보를 제공합니다.SecurityContextHolder.getContext().getAuthentication().isAuthenticated()
강의 내용 체크: 강의 내에서 이와 관련된 내용이 언급되었는지 확인하거나, 해당 부분에 대한 추가적인 설명 및 예제를 요청하시는 것도 좋은 방법입니다.
관련하여 유사한 문제를 겪었던 다른 사례들을 참고하시려면, 아래의 링크를 참조하실 수 있습니다:
문제 해결에 도움이 되시길 바라며, 추가적으로 궁금한 점이 있으시면 언제든지 질문해 주세요. 강의 내 설명이 충분치 않았다면, 직접적으로 강사님께 피드백을 남기시길 추천드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.