sec:authorize
는 스프링 시큐리티에서 제공하는 기능이므로, 스프링 시큐리티 의존성을 추가하셔야 합니다. 또한 isAuthenticated()
메서드를 사용하기 위해서는 스프링 시큐리티 설정 파일에서 로그인 인증을 구현해야 합니다. 설정 파일에 인증 구현을 추가하신 후 sec:authorize
기능을 사용하시면 됩니다.
스프링 시큐리티로 구현한 로그인 이후 권한에 따른 메뉴바의 아이템을 다르게 설정 해주었습니다.
<div sec:authorize-expr="isAuthenticated()">
<ul class="nav navbar-nav navbar-right">
<li><a href="/board/form"><span class="glyphicon glyphicon-edit"></span> 글쓰기</a></li>
<li><a href="/user/form"><span class="glyphicon glyphicon-user"></span> 회원정보</a></li>
<li><a href="/logout"><span class="glyphicon glyphicon-log-out"></span> 로그아웃</a></li>
</ul>
</div>
<div sec:authorize-expr="!isAuthenticated()">
<ul class="nav navbar-nav navbar-right">
<li><a href="/auth/joinForm"><span class="glyphicon glyphicon-user"></span> 회원가입</a></li>
<li><a href="/auth/loginForm"><span class="glyphicon glyphicon-log-in"></span> 로그인</a></li>
</ul>
</div>
인증된 사용자라면 글쓰기, 회원정보, 로그아웃 아이템, 반대라면 회원가입, 로그인 아이템을 보여주어야 하는데…
정상적으로 적용이 되질 않는 모습입니다.
찾아보니 현재 사용중인 extras-security6은 보약 취약점을 보완한 버전이라 해당 메서드가 적용이 되지않는 문제가 있었습니다.
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity6'
extras-security5 버전으로 변경 시
implementation 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
정상적으로 적용이 되는 모습을 확인할 수 있었습니다.
현재는 extras-security5 버전으로 대체하여 사용하도록 하고 이후 extras-security6 버전에서 해당 메서드를 사용하는 방법에 대해서 알아봐야겠습니다.
'트러블슈팅' 카테고리의 다른 글
[Git] PR을 메인 브랜치로 잘못 머지한 상황 (0) | 2023.06.30 |
---|---|
[DB] JPA 무한참조 문제 (0) | 2023.03.18 |
[oAuth 2.0] 카카오 로그인 기능구현 시 고려할 점 (0) | 2023.03.18 |
[oAuth 2.0] 카카오 DB정보와 일치하지만 로그인에 실패하는 상황 (0) | 2023.03.18 |
[Spring Security] 회원정보 수정 시 최신화 되지 않는 문제 (0) | 2023.03.18 |