Logout

2023. 6. 26. 14:24· Spring/👨‍💻 SpringSecurity
목차
  1. 정리

시큐리티는 로그아웃을 했을때 적용하는 필터도 있다. 해당 필터의 내용은 간단하다.

 

장수원 강사님의 SpringSecurity 수업에 발췌

너무 간단하니 말로 설명해보자면 클라이언트는 로그아웃이라는 요청을 보낸다. 그럼 서버에서는 해당 요청을 처리하게 되고 서버는 로그아웃에 대한 처리를 한다 대표적으로는 세션 무효화, 인증 토큰 삭제, 쿠키 정보 삭제를 시키고 로그인 페이지를 리다이렉트로 넘기기도 한다.

  • 여기서 인증 토큰을 삭제 한다는 것은 우리가 SecurityContext 에 넣어놓았던 인증 객체를 말한다.

 

그럼 진행 순서를 한번 알아보자

장수원 강사님의 SpringSecurity 수업에 발췌

  1. 사용자가 로그아웃 요청을 하면 LogoutFilter 에서 이 요청을 지나간다.
  2. 그럼 AntPathRequestMatcher가 해당 요청의 URL을 확인하고 맞다면 filter의 작업을 시작한다.
  3. 그럼 Context안에 있는 인증객체를 꺼내와서 삭제한다. 정확히는 null의 값으로 바꾼다고 하는것이 맞다

 

그럼 코드로 한번 알아보자

조금 작아서 알아보기 불편할 수 있지만 현재 스프링 부트 3.1.0 버전의 시큐리티가 또다시 변경되었다.

하나씩 알아보자

  1. logoutUrl("/logout") = 로그아웃을 처리하는 URL
  2. logoutSuccessUrl("/login") = 로그아웃이 된 후에 사용자에게 보여줄 페이지
  3. addLogoutHandler(logoutHandler()) = 로그아웃 핸들러
    • 해당 사용자의 세션값을 무효화한다.
  4. logoutSuccessHandler(logoutSuccessHandler()) = 로그아웃 성공 후 핸들러 
    • 성공후 리다이렉트 될 URL을 보낸다.
  5. deleteCookies("JESSIONID", "remember-me") = 로그아웃 후 쿠키를 삭제한다

 

 

정리

로그아웃이라는 필터 자체로는 이해하기 어려운것은 없다. 그저 기존 사용자의 정보와 세션값을 서버에서 지운다. 라고 이해하면 될것같다 추후에 내가 프로젝트에 추가 할때도 Context에 저장되어있는 사용자의 정보와 토큰값을 지우면 된다.

'Spring > 👨‍💻 SpringSecurity' 카테고리의 다른 글

AnonymousAuthenticationFilter  (0) 2023.06.26
RememberMeAuthenticationFilter  (0) 2023.06.26
CuncurrentSesseionFilter  (0) 2023.06.26
SessionManagementFilter(동시 세션 제어 / 세션 고정 보호 / 세션 정책)  (0) 2023.06.26
CSRF  (0) 2023.06.26
  1. 정리
'Spring/👨‍💻 SpringSecurity' 카테고리의 다른 글
  • RememberMeAuthenticationFilter
  • CuncurrentSesseionFilter
  • SessionManagementFilter(동시 세션 제어 / 세션 고정 보호 / 세션 정책)
  • CSRF
늦은산책
늦은산책
늦은산책
중얼중얼블로그
늦은산책
전체
오늘
어제
  • 분류 전체보기
    • 오류 모음집
    • CS
      • 💾 자료구조
      • 👫🏼 정렬
      • 🖥 네트워크
      • 💻 운영체제
      • 💾 DB
      • 🌌 알고리즘
      • 📝 언어
    • 테스트
    • Git 초보에게 필요한 Git bash사용법
    • 프로젝트
      • 팀 프로젝트
      • 개인 프로젝트
      • 항해99 개인 프로젝트
      • 스위프 프로젝트(Lit Map)
    • Java
      • 객체 지향
    • Spring
      • 🌲 Spring
      • 👨‍💻 SpringSecurity
      • 🌵 JPA
    • MSA
      • MSA 강좌 - 이도원 강사님
    • Docker(도커)
    • 코딩테스트
      • 🧮 프로그래머스
      • 🎲 백준
    • 항해99
      • 🕛 1주차
      • 🕐 2주차
      • 🕑 3주차
      • 🕒 4주차
    • AWS
    • CI와CD

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 취업리부트코스
  • 카우치코딩
  • 항해99
  • 취리코
  • 개발자포토폴리오
  • 개발자포트폴리오
  • couchcoding
  • 코딩테스트
  • 개발자취준
  • 개발자이력서
  • 개발자취업
  • 카우치코딩_포트폴리오_멘토링
  • 카우치코딩_팀프로젝트

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
늦은산책
Logout
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.