해결된 질문
20.12.24 15:14 작성
·
603
0
.defaultSuccessUrl("/success", true)
.failureUrl("/fail")
직접 따라해보다가 defaultSuccessUrl 메서드의 두번째 인자의 true를 꼭 넘겨줘야
login이 성공했을 때 /success url로 이동하는 것을 알게 되었는데요.
.defaultSuccessUrl("/success")처럼 두번째 인자 없이 쓰는 경우는 어떤 경우인가요?
.failureUrl은 왜 두번째 인자가 필요 없는건가요?
답변 1
0
2020. 12. 24. 18:12
defaultSuccessUrl("/success", true) 에서 두번째 인자는 로그인 성공 이후 이동할 페이지를 항상 고정하기 위함입니다.
스프링 시큐리티에서는 로그인 인증 이후에 이동할 페이지를 임의로 설정하거나 인증 이전의 페이지로 리다이렉트 할 수 있습니다.
그런데 두번째 인자가 true 일 경우에는 무조건 "/success" 로 이동하게 됩니다.
두번째 인자가 없는 기본값은 false 이기 때문에 항상 "/success" 로 가지 않습니다.
failureUrl 의 두번째 인자는 스프링 시큐리티에서 지원하지 않습니다. 그 이유는 무조건 이동할 수 있는 플래그를 주지 않고 설정한 url 로만 갈 수 있도록 하기 위함입니다.