我是第一次使用Spring Boot创建一个网站。我正在使用一个测试页来显示用户登录后,用户登录后屏幕上会出现“已认证”字样。
Authenticated
但是,问题在于带有sec:authorize的标记仍未编辑和未解析。结果,无论用户是否登录,都会显示Authenticated单词。从控制器打印用户权限可以确认这一点。
我的pom.xml文件具有以下依赖性。
org.springframework.boot spring-boot-starter-security org.springframework.boot spring-boot-starter-thymeleaf org.thymeleaf.extras thymeleaf-extras-springsecurity4 org.springframework.boot spring-boot-starter-web ... dependencies for mysql and jdbc are omitted. org.springframework.boot spring-boot-starter-test test
任何帮助表示赞赏。注意,我使用的是Spring Boot,因此JAVA配置优于XML配置。
请尝试在您的@Configuration
(或@SpringBootApplication
)类中添加类似以下代码的内容:
@Bean public SpringTemplateEngine templateEngine(ITemplateResolver templateResolver, SpringSecurityDialect sec) { final SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver); templateEngine.addDialect(sec); // Enable use of "sec" return templateEngine; }
请注意,如果要强制Spring Boot使用Thymeleaf版本3,则还必须强制thymeleaf-extras-springsecurity4
依赖项的版本3 :
org.thymeleaf.extras thymeleaf-extras-springsecurity4 3.0.1.RELEASE
另请参阅此相关答案。