위와 같이 서버에 접속하려하니 리다이렉션한 횟수가 너무 많다고 오류가 떴다.
오류는 로그인이 되어있던 상태에서는 없었고, 로그아웃을 한 후로 발생했다.
처음에는 컨트롤러나 폼에 문제가 있나 싶어서 찾아봤지만, 문제는 다른 곳에 있었다.
찾아보니 스프링 시큐리티 설정 클래스에 문제가 생긴듯 했다.
위의 코드를 대강 해석해보면 http
요청에 대해 /question/list
, /question/detail
, /style.css
, /
에 대한 요청은 permitAll()
을 통해 누구나 접근할 수 있게 한다.
이외의 나머지 요청은 인증을 받아야한다.(즉, 로그인 해야한다는 말이겠지)
그리고 로그인페이지는 /user/login
이고 로그인 성공 url
은 /
이다.
로그아웃은 /user/logout
이고 로그아웃 성공 url
은 /
이다. 또한 로그아웃 이후 세션 전체 삭제 설정을 true
로 한다.
나는 permitAll
을 통해 특정 url
만 누구나 접근할 수 있게 설정했다. 하지만 여기서 로그인 url
과 로그아웃 url
은 permitAll
을 안했기 때문에 anyRequest().authenticated()
에서 계속 "너 로그인 해야돼"라고 리다이렉트를 보내주는거였다... (너무 간단했다.)
수정완료!로그인 페이지 접속 시도 -> "너 로그인 해야지 접속 가능 ㅅㄱ" -> 로그인 페이지 접속 시도 -> "너 로그인 해야지 접속 가능 ㅅㄱ" 무한 반복