Spring Security_basic. 로그인 / 로그아웃

dwanGim·2022년 7월 4일
0

spring_basic

목록 보기
26/41
post-thumbnail

로그인 성공

로그인 성공을 처리하기 위해 custom handler를 생성합니다.

위와 같이,

앞으로 모든 security 처리는 ~~~handler를 생성한 후 default handler들을 상속받아 생성해줍니다.

오버라이딩에 성공한 onAuthenticationSuccess메서드에

로그인 성공 시 실행될 로직들을 작성해줍니다.

return 구문을 실행하고 각각 if문으로 설정해야

리다이렉트가 중복되어 호출되지 않습니다.

또한 해당 로직에서 로그인 성공 시 어떤 권한인지 체크하기 위해

부여받은 권한들을 불러와야 합니다.

ROLE_ADMIN 의 경우는 ROLE_MEMBER가 함께 부여되기 떄문에 경

우에 따라 권한이 여럿일 수 있습니다.

따라서 List를 생성하여 향상된 for문으로 세팅해줍니다.

그리고 기존 로그인 처리 로직을 커스텀으로 적용하기 위해

security-context.xml 내부의 내용을 바꿔줍니다.

앞으로도 커스텀으로 security로직을 작성할 때

  1. override로 커스텀 로직 작성

  2. security-context.xml 내부에 bean 생성

  3. 태그 적용

순서대로 진행하면 됩니다.

각각의 로그인 접근 계정에 따라 로그인이 다르게 처리되는 것을 확인하면

완성입니다.

로그아웃 처리

로그아웃 처리를 위해 security-context.xml에

security:logout태그를 사용해 주소를 저장하고

invalidate-session 속성에 true를 줘서 로그아웃 시 세션을

파기하도록 지정합니다.

controller에 customLogout을 처리하는 폼으로 이동하는 메서드를 추가합니다.

get방식으로 폼을 향해 이동

post방식으로 폼의 데이터를 받아와 로그아웃 처리를 하는

두 개의 메서드를 생성합니다.

customLogout.jsp에서도 csrf토큰을 사용하여 데이터를 처리합니다.

로그아웃 버튼을 눌렀을때 해당 처리 페이지로 이동한 후에

로그아웃 로그와 함께 처리가 잘 진행되면 완성입니다.

profile
배울 게 참 많네요.

0개의 댓글