2016-05-21 12 views
0

In meinem aktuellen Frühjahr-Boot-Projekt ausgewertet wird, habe ich eine Ansicht mit diesem HTML-Code:sec: autorisieren nicht auf federBootProjekt

<div id="navbar" class="collapse navbar-collapse"> 
    <ul class="nav navbar-nav navbar-right" sec:authorize="isAuthenticated()"> 
    ... 
    </ul> 
    <ul class="nav navbar-nav navbar-right" sec:authorize="isAnonymous()"> 
    ... 
    </ul> 
</div> 

aber wenn ich die Anwendung ausführen, offenbar der Tag sec:authorize isn wird nicht ausgewertet, da beide Teile angezeigt werden.

ich thymeleaf in meiner application.properties konfigurieren Datei auf diese Weise:

# THYMELEAF (ThymeleafAutoConfiguration) 
spring.thymeleaf.prefix=classpath:/templates/ 
spring.thymeleaf.suffix=.html 
spring.thymeleaf.mode=HTML5 
spring.thymeleaf.encoding=UTF-8 
spring.thymeleaf.content-type=text/html 
spring.thymeleaf.cache=false 

meine thymeleaf Konfigurationsklasse auf diese Weise durchgeführt wird:

@Configuration 
public class Thymeleaf { 
    @Bean 
    public SpringTemplateEngine templateEngine() { 
    SpringTemplateEngine engine = new SpringTemplateEngine(); 
    final Set<IDialect> dialects = new HashSet<IDialect>(); 
    dialects.add(new SpringSecurityDialect()); 
    engine.setDialects(dialects); 

    return engine; 
    } 
} 

kann jeder zeigen, was ich hier fehlt?

Antwort

1

Stellen Sie sicher, die folgende Abhängigkeit für Thymeleaf hinzufügen:

<dependency> 
    <groupId>org.thymeleaf.extras</groupId> 
    <artifactId>thymeleaf-extras-springsecurity4</artifactId> 
    <version>2.1.2.RELEASE</version> 
    <scope>compile</scope> 
</dependency> 

Vergewissern Sie sich auch diese

xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity4" 

ich auch denken, fügen dem <html> nicht, dass Set<IDialect> notwendig ist (korrigiert mich wenn ich bin falsch), Sie können es einfach schreiben als:

Bean 
public SpringTemplateEngine templateEngine() { 
    SpringTemplateEngine engine = new SpringTemplateEngine(); 
    engine.setTemplateResolver(templateResolver()); 
    engine.addDialect(new SpringSecurityDialect()); 
    return engine; 
}