• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

defaultSuccessUrl과 failureUrl의 작동방식 차이?

20.12.24 15:14 작성 조회수 521

0

.defaultSuccessUrl("/success", true)

.failureUrl("/fail")

직접 따라해보다가 defaultSuccessUrl 메서드의 두번째 인자의 true를 꼭 넘겨줘야

login이 성공했을 때 /success url로 이동하는 것을 알게 되었는데요.

.defaultSuccessUrl("/success")처럼 두번째 인자 없이 쓰는 경우는 어떤 경우인가요?

.failureUrl은 왜 두번째 인자가 필요 없는건가요?

답변 1

답변을 작성해보세요.

0

defaultSuccessUrl("/success", true) 에서 두번째 인자는 로그인 성공 이후 이동할 페이지를 항상 고정하기 위함입니다.

스프링 시큐리티에서는 로그인 인증 이후에 이동할 페이지를 임의로 설정하거나 인증 이전의 페이지로 리다이렉트 할 수 있습니다.

그런데 두번째 인자가 true 일 경우에는  무조건 "/success" 로 이동하게 됩니다.

두번째 인자가 없는 기본값은 false 이기 때문에 항상 "/success" 로 가지 않습니다.

failureUrl 의 두번째 인자는 스프링 시큐리티에서 지원하지 않습니다. 그 이유는 무조건 이동할 수 있는 플래그를 주지 않고 설정한 url 로만 갈 수 있도록 하기 위함입니다.