小编典典

Thymeleaf 3.0 Spring Boot +安全性集成无法正常工作

spring-boot

在基于Spring Boot 1.4.3的项目中,我很难让Thymeleaf与Spring Security一起使用。

标签,例如

<div sec:authorize="hasAuthority('ADMIN')">

根本无法解析。

如果我尝试SpringSecurityDialect像这样手动添加:

@Bean
public SpringSecurityDialect securityDialect() {
    return new SpringSecurityDialect();
}

我正进入(状态:

Exception in thread "main" java.lang.NoClassDefFoundError: org/thymeleaf/dialect/IExpressionEnhancingDialect

我在依赖项中包含以下内容:

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity4</artifactId>
</dependency>

SpringSecurityDialect似乎并没有被自动配置添加。

手动添加Bean之后,出现了上述异常。

这是错误还是我错过了什么?

我的Thymeleaf版本是:

<thymeleaf.version>3.0.2.RELEASE</thymeleaf.version>
<thymeleaf-extras-java8time.version>3.0.0.RELEASE</thymeleaf-extras-java8time.version>
<thymeleaf-layout-dialect.version>2.1.2</thymeleaf-layout-dialect.version>

阅读 560

收藏
2020-05-30

共1个答案

小编典典

得到它的工作,如果你正在使用Thymeleaf3.0.2与Spring 1.4的引导,需要强制版本3.0.1.RELEASEthymeleaf- extras-springsecurity4(因为它继承了2.1.2版不工作结合Thymeleaf 3):

<dependency>
    <groupId>org.thymeleaf.extras</groupId>
    <artifactId>thymeleaf-extras-springsecurity4</artifactId>
    <version>3.0.1.RELEASE</version>
</dependency>

标签应使用该hasRole功能。

<div sec:authorize="hasRole('ROLE_ADMIN')">
2020-05-30