개발자의 오르막
[SpringSecurity #13] 타임리프 스프링 시큐리티 본문
# Thymeleaf SpringSecurity
- build.gradle 에서 의존성을 추가해준다.
compile group: 'org.thymeleaf.extras', name: 'thymeleaf-extras-springsecurity5', version: '3.0.4.RELEASE'
- authorization 을 통한 분기처리를 thymeleaf 문법을 통해 구현할 수 있다.
- Index.html
<div th:if="${#authorization.expr('isAuthenticated()')}">
<h2 th:text="${#authentication.name}">Name</h2>
<a href="/logout" th:href="@{/logout}">Logout</a>
</div>
<div th:unless="${#authorization.expr('isAuthenticated()')}">
<a href="/login" th:href="@{/login}">Login</a>
</div>
위의 부분을 타임리프의 sec 네임스페이스를 쓰면 더 간결하게 바꿀 수 있다.
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<h1 th:text="${message}">Hello</h1>
<div sec:authorize-expr="isAuthenticated()">
<h2 sec:authentication="name">Name</h2>
<a href="/logout" th:href="@{/logout}">Logout</a>
</div>
<div sec:authorize-expr="!isAuthenticated()">
<a href="/login" th:href="@{/login}">Login</a>
</div>
<!--
<div th:if="${#authorization.expr('isAuthenticated()')}">
<h2 th:text="${#authentication.name}">Name</h2>
<a href="/logout" th:href="@{/logout}">Logout</a>
</div>
<div th:unless="${#authorization.expr('isAuthenticated()')}">
<a href="/login" th:href="@{/login}">Login</a>
</div>
-->
</body>
</html>
sec:authentication 을 통해 hasRole, anonymous 등을 설정할 수 있다.
'SpringFrameWork > SpringSecurity' 카테고리의 다른 글
[SpringSecurity #15] 스프링 시큐리티 데이터 연동 (0) | 2020.10.06 |
---|---|
[SpringSecurity #14] 스프링 메소드 시큐리티 (0) | 2020.10.05 |
[SpringSecurity #12] Security Custom Filter 만들기 (0) | 2020.10.04 |
[SpringSecurity #11] Security Auth 관련 Filter (0) | 2020.10.03 |
[SpringSecurity #10] HeaderWriterFilter, CsrfFilter (0) | 2020.10.03 |
Comments