해결된 질문
작성
·
371
0
안녕하세요, 강의 너무너무 재밌게 듣고 있는 수강자입니다 :)
오늘 인증 성공 핸들러 강의 듣다가 몇가지 테스트를 해봤는데, 정말 난감한 상황을 마주쳤습니다.
어떤 사용자가 아래처럼 행동한다고 가정하겠습니다.
1. 메인페이지( = "/" ) -> 마이페이지 메뉴 클릭
2. 로그인 화면 뜸 (이때 세션에 RequestCache 가 생성)
3. 뒤로가기
4. 화면 상단의 로그인 버튼 클릭
5. 로그인 화면 뜸 (여전히 세션이 2번의 RequestCache 를 간직함)
6. 로그인을 성공
7. 마이페이지로 이동
이럴 때는 어떻게 해야할지 정말 난감하네요.
그냥 로그인 버튼을 클릭해서 로그인에 성공했으니,
로그인 성공 디폴트 경로인 "/" 로 보내고 싶습니다.
어떻게 하는게 좋을까요?
답변 1
1
네
이같은 경우는 RequestCaChe 가 로그인 실패 이전의 url 정보를 가지고 있기 때문에 그런 현상이 발생하고 있습니다.
그래서 로그인 후 무조건 디폴트 경로로 가기 위해서는 defaultSuccessUrl("/경로", true) 와 같은 Api 를 사용하셔야 합니다.
RequestCaChe 를 사용하든지 아니면 기본 경로로만 이동하든지 결정해야 할 문제입니다.
두가지 모두의 경우에 대하여 별도의 로직을 구현할 수도 있지만 스프링 시큐리티의 내부 동작 원리를 충분히 이해해야 가능한 부분입니다.
일단 defaultSuccessUrl 를 사용해 보십시오
답변 감사합니다!
일단 defaultSuccessUrl 쓰다가 시큐리티를 좀 더 숙달하면 해결법을 찾아보겠습니다 :)