SSM+Spring Security+Thymeleaf:解决sec标签不起作用

在新搭建的项目中,使用Spring Security来实现认证和授权,在前台页面需要显示当前登录的用户名,可以使用Spring security自带的sec标签来获取;出现的问题就是sec标签不起作用;经各种搜索,常见的原因Spring security ,Spring,Thymeleaf使用的版本不对
最准确的方法是查看官网相关文档,对比自己项目的pom.xml文件确定自己使用的版本是否正确
相关地址Thymeleaf - Spring Security integration modules
在这里插入图片描述
如何在html等使用sec:*

<html lang="en" xmlns:th="http://www.thymeleaf.org"
	xmlns:sec="http://www.thymeleaf.org/extras/spring-security"> 
</html>

sec:*判断是否有登陆,用户未登录显示登录两个字,登录之后显示用户名
sec:authorize="isAnonymous()" ,sec:authorize="isAuthenticated()"true是才显示该secu所在的标签

<span class="login_or_register_string">
        <a  href="/home/login.do" th:href="@{/home/login.do}" sec:authorize="isAnonymous()"  id="user_name_a" >登录</a>
        <!--注意sec:authentication="name",必须是name-->
        <a href="/personal_info.do"  class="user_name_a"  sec:authorize="isAuthenticated()" sec:authentication="name" id="user_name_a"></a>
 </span>

如果你的版本正确,但是sec标签依旧不起作用,我就是这样的,对比官网给出的适配版本,我的都在正确的范围内,可把我给难住了,查了各种博客无果之后,回头看起了官网,
在这里插入图片描述
如果,你的版本符合官网的要求,那就看看你是否配置了SpringSecurityDialect吧。

ヾ(◍°∇°◍)ノ゙,因为我是配置好了SSM框架之后,又集成的spring security,所以忘记配置这一块了,o(╥﹏╥)o所以sec:*标签不起作用

<bean id="templateEngine" class="org.thymeleaf.spring5.SpringTemplateEngine">
		<!-- 在thymeleaf中使用使用sec:* -->
		<property name="additionalDialects">
			<set>
				<bean
	class="org.thymeleaf.extras.springsecurity4.dialect.SpringSecurityDialect" />
			</set>
		</property>
	</bean>

最近新搭建了一个基于Maven的SSM项目,其中还集成了Spring security,Tymeleaf,MySQL等,一路真的是填坑和挖坑的过程,哈哈,一定要多看官方文档,其次才是网友们的各种博客。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值