Thymeleaf avec Spring Security - Comment vérifier si l'utilisateur est connecté ou non?

J'utilise une botte à ressort avec Thymeleaf et la sécurité à ressort. J'ai une vue simple avec un lien de connexion. Lorsque l'utilisateur se connecte, j'aimerais changer de connexion de lien de lien de déconnexion.

j'ai essayé:

<div sec:authorize="#{isAuthenticated()}">
  <a th:href="@{/logout}">Log out</a>
</div>
<div sec:authorize="#{isAnonymous()}">
  <a th:href="@{/login}">Log in</a>
</div>

mais il ne fonctionne pas - il affiche les deux liens.

cordialement.

modifier: J' résolu. J'ai eu à enregistrer Thymeleaf dialecte. Pour ce faire, j'ai créé une nouvelle classe de configuration, qui crée SpringSecurityDialect bean:

@Configuration
public class ThymeleafConfig {

    @Bean
    public SpringSecurityDialect springSecurityDialect(){
        return new SpringSecurityDialect();
    }
}
20
demandé sur tomdavies 2015-03-06 20:22:06

2 réponses

Selon thymeleaf docs aucune expression de spel n'est requise. Ce n'est pas un th: l'attribut.

alors vous pouvez essayer:

<div sec:authorize="isAuthenticated()">

<div sec:authorize="isAnonymous()">
26
répondu grid 2015-03-06 17:41:53

peut aussi utiliser sec:authorize="isFullyAuthenticated()" qui vérifie si son anonymousUser et 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>
1
répondu ms.one 2018-07-18 16:04:20