[Spring/SpringBoot] sec:authorize="isAnonymous()"가 제대로 작동 안한 이유

pintegral·2022년 10월 12일
0

Spring/Spring Boot

목록 보기
6/8
post-thumbnail

Spring Security Context를 이용한 사용자 권한, 정보 리턴 기능


Spring Security에서 자체적으로 지원하는 기능으로 로그인 여부, 권한 별로 다르게 처리하는 것을 서버단뿐만 아니라 프론트단에서도 할 수 있다.
SecurityContextHolder.getContext().getAuthentication()으로 인증정보를 가져오는 것이다.
만약 비로그인 회원이라면 스프링에서Anonymous Authentication Token을 가져와 비로그인 회원임을 확인한다.

기능이 작동하지 않았던 원인


그런데 타임리프 사용중 sec:authorize="isAnonymous()" 이 코드가 작동하지 않았다.

알고보니 HTML 상단 태그 xmlns:sec="http://www.thymeleaf.org/extras/spring-security" 에 이렇게 xmlns:sec 속성 값을 명시해주지 않아서 기능이 작동하지 않았던 것이다.

<!doctype html>
<html
        xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
        **xmlns:sec="http://www.thymeleaf.org/extras/spring-security"** // here
        xmlns:th="http://thymeleaf.org"
        layout:decorate="~{fragment/layout}"
>
<head>

이렇게 추가하고 나니 제대로 작동했다.

괜히 세션이나 쿠키 문제인 줄 알고 그것만 잡고 늘어졌는데.. 태그 속성값 명시하지 않은 이유 때문이었다니. . .

profile
문제를 끝까지 해결하려는 집념의 개발자

0개의 댓글