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-security6 버전에서 해당 메서드를 사용하는 방법에 대해서 알아봐야겠습니다.
'Spring' 카테고리의 다른 글
[Spring Boot] ThymeLeaf 템플릿 사용 (0) | 2023.03.02 |
---|---|
[Spring Security] 스프링 시큐리티 시작하기 (0) | 2023.03.02 |
[Spring Boot] 스프링부트에서의 thymeleaf 사용방법 (1) | 2023.03.02 |
[Srping Security] BCriptPasswordEncoder 해시 암호화 방법 (0) | 2023.03.02 |
[Spring Boot] REST (0) | 2023.02.19 |