Каждое <div>
с указанным значением sec:authentication="..."
отображается независимо от того, вошли вы в систему или нет.Даже явный false
вызывает появление div
.
С другой стороны <div>
с sec:authorize="..."
скрыты, даже с явным true
.
Я попытался проверить зависимости Maven, конфигурацию Spring MVC, Spring Security Dialect в ServletContextConfig
и многие другие ответы, но в моем случае не помогло ни одно решение.
index.html :
<!DOCTYPE html>
<html
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4">
<head>
<meta charset="UTF-8"/>
<title>blah blah</title>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet"/>
</head>
<body style="text-align: center;">
<div sec:authentication="true">
authentication - always
</div>
<div sec:authentication="false">
authentication - never
</div>
<div class="container" sec:authentication="isAnonymous()">
authentication - anonymous
</div>
<div class="container" sec:authentication="!isAnonymous()">
authentication - not anonymous
</div>
<div class="container" sec:authentication="isAuthenticated()">
authentication - authenticated
</div>
<div class="container" sec:authentication="!isAuthenticated()">
authentication - not authenticated
</div>
<div sec:authorize="true">
authorize - always
</div>
<div sec:authorize="false">
authorize - never
</div>
<div class="container" sec:authorize="isAnonymous()">
authorize - anonymous
</div>
<div class="container" sec:authorize="!isAnonymous()">
authorize - not anonymous
</div>
<div class="container" sec:authorize="isAuthenticated()">
authorize - authenticated
</div>
<div class="container" sec:authorize="!isAuthenticated()">
authorize - not authenticated
</div>
<strong> Username: <span sec:authentication="name"></span> </strong>
<div th:text="${#authorization.getAuthentication()}">1</div>
<div th:text="${40}">1</div>
<!-- end of content! -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
</body>
</html>
Ожидаемый результат (при отсутствии входа в систему):
аутентификация - всегда
аутентификация -анонимная
аутентификация - не аутентифицирована
авторизация - всегда
авторизация - анонимно
авторизация - не аутентифицирована
Имя пользователя:Аноним
40
Фактический результат :
аутентификация - всегда
аутентификация - никогда
аутентификация - анонимная
аутентификация - не анонимная
аутентификация - аутентифицированная
аутентификация - не аутентифицированная
Имя пользователя:
40