Ответ 1
Согласно thymeleaf docs, выражение выражений не требуется. Это не атрибут th:.
Итак, вы можете попробовать:
<div sec:authorize="isAuthenticated()">
<div sec:authorize="isAnonymous()">
Я использую Spring Boot with Thymeleaf и Spring Security. У меня есть простой вид с ссылкой для входа. Когда пользователь войдет в систему, я хочу изменить ссылку для входа в систему.
Я пробовал:
<div sec:authorize="#{isAuthenticated()}">
<a th:href="@{/logout}">Log out</a>
</div>
<div sec:authorize="#{isAnonymous()}">
<a th:href="@{/login}">Log in</a>
</div>
но он не работает - он отображает обе ссылки.
С уважением.
EDIT: Я решил. Мне пришлось регистрировать диалект Тимелеафа. Для этого я создал новый класс конфигурации, который создает SpringSecurityDialect bean:
@Configuration
public class ThymeleafConfig {
@Bean
public SpringSecurityDialect springSecurityDialect(){
return new SpringSecurityDialect();
}
}
Согласно thymeleaf docs, выражение выражений не требуется. Это не атрибут th:.
Итак, вы можете попробовать:
<div sec:authorize="isAuthenticated()">
<div sec:authorize="isAnonymous()">
Можно также использовать sec:authorize="isFullyAuthenticated()"
, который проверяет, есть ли его anonymousUser
и rememberMe
.
<div class="button-group" sec:authorize="!isFullyAuthenticated()">
<a href="/login">Login</a>
<a href="/register">Register</a>
</div>
<div class="button-group" sec:authorize="isFullyAuthenticated()">
<a href="/logout">Logout</a>
</div>