pom.xml 에 추가
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
현재 로그인이 되어있는 중이면 네브바에 로그아웃만 보이고,
로그인이 안되어있으면 로그인/회원가입 보임
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a
class="nav-link"
sec:authorize="isAnonymous()"
th:href="@{/user/login}"
>로그인</a
>
<a
class="nav-link"
sec:authorize="isAuthenticated()"
th:href="@{/user/logout}"
>로그아웃</a
>
</li>
<li class="nav-item">
<a
class="nav-link"
sec:authorize="isAnonymous()"
th:href="@{/user/signup}"
>회원가입</a
>
</li>
</ul>
현재 로그아웃 클릭 시 에러가 발생한다.
SecurityConfig에서 간단하게 로그아웃 처리 가능함
아래의 내용 추가
.and()
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/user/logout"))
.logoutSuccessUrl("/")
.invalidateHttpSession(true)
;
로그아웃을 위한 설정을 추가했다. 로그아웃 URL을 /user/logout으로 설정하고
로그아웃이 성공하면 루트(/) 페이지로 이동하도록 했다.
그리고 로그아웃시 생성된 사용자 세션도 삭제하도록 처리했다.
테스트하기
현재 로그인되어있는 상태이고 로그아웃 버튼 누르면
로그아웃 처리된다.
'BACKEND > SpringBoot' 카테고리의 다른 글
질문 수정 처리 (0) | 2023.11.10 |
---|---|
엔티티 변경 글쓴이 추가 및 글 목록,상세보기,답변에 반영하기 (0) | 2023.11.10 |
로그인 구현 (0) | 2023.11.10 |
회원가입 처리(유효성검사, 비밀번호 암호화, 중복회원가입처리) (0) | 2023.11.10 |
스프링 시큐리티 (0) | 2023.11.10 |