로그인 성공
로그인 성공을 처리하기 위해 custom handler를 생성합니다.
위와 같이,
앞으로 모든 security 처리는 ~~~handler를 생성한 후 default handler들을 상속받아 생성해줍니다.
오버라이딩에 성공한 onAuthenticationSuccess메서드에
로그인 성공 시 실행될 로직들을 작성해줍니다.
return 구문을 실행하고 각각 if문으로 설정해야
리다이렉트가 중복되어 호출되지 않습니다.
또한 해당 로직에서 로그인 성공 시 어떤 권한인지 체크하기 위해
부여받은 권한들을 불러와야 합니다.
ROLE_ADMIN 의 경우는 ROLE_MEMBER가 함께 부여되기 떄문에 경
우에 따라 권한이 여럿일 수 있습니다.
따라서 List를 생성하여 향상된 for문으로 세팅해줍니다.
그리고 기존 로그인 처리 로직을 커스텀으로 적용하기 위해
security-context.xml 내부의 내용을 바꿔줍니다.
앞으로도 커스텀으로 security로직을 작성할 때
override로 커스텀 로직 작성
security-context.xml 내부에 bean 생성
태그 적용
순서대로 진행하면 됩니다.
각각의 로그인 접근 계정에 따라 로그인이 다르게 처리되는 것을 확인하면
완성입니다.
로그아웃 처리
로그아웃 처리를 위해 security-context.xml에
security:logout태그를 사용해 주소를 저장하고
invalidate-session 속성에 true를 줘서 로그아웃 시 세션을
파기하도록 지정합니다.
controller에 customLogout을 처리하는 폼으로 이동하는 메서드를 추가합니다.
get방식으로 폼을 향해 이동
post방식으로 폼의 데이터를 받아와 로그아웃 처리를 하는
두 개의 메서드를 생성합니다.
customLogout.jsp에서도 csrf토큰을 사용하여 데이터를 처리합니다.
로그아웃 버튼을 눌렀을때 해당 처리 페이지로 이동한 후에
로그아웃 로그와 함께 처리가 잘 진행되면 완성입니다.