Spring Security Dialect sec:授权未解析

Suj*_*jit 1 security spring spring-security dialect thymeleaf

我正在使用 spring boot 2.1.0 和 spring security 构建一个小应用程序。我可以使用表单身份验证登录和退出。但是, sec:authorize 标记不会被解析或评估,呈现的 html 包含这些属性。

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>
    <dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-springsecurity4</artifactId>
        <version>3.0.4.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>nz.net.ultraq.thymeleaf</groupId>
        <artifactId>thymeleaf-layout-dialect</artifactId>
        </dependency>
Run Code Online (Sandbox Code Playgroud)

不知道我错过了什么

Ala*_*ruz 5

如果没有提供太多信息,可能会有一些设置不正确。无论如何,这个问题往往可以通过添加缺少的依赖项或更改您正在使用的依赖项来解决。因此,首先,尝试更改为springsecurity5. 并添加以下内容@Bean

配置

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.thymeleaf.extras.springsecurity5.dialect.SpringSecurityDialect;

@Configuration
public class LeafConfig {

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

}
Run Code Online (Sandbox Code Playgroud)

聚甲醛

<dependency>
        <groupId>org.thymeleaf.extras</groupId>
        <artifactId>thymeleaf-extras-springsecurity5</artifactId>
        <version>3.0.4.RELEASE</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

另外,如果您正在使用<artifactId>spring-boot-starter-parent</artifactId>,请不要向您的 中添加任何版本Thymeleaf Extras,让 Spring Boot 为您管理。