使用springboot+springsecurity+thymeleaf撸一个登录的demo,在处理sec标签的时间打死都出不来效果,网上的解决方法基本都是各种抄,各种降版本的骚操作,根本没有说到关键点。
现象是以下的标签,在访问时两个div是同时出现的,表明isAuthenticated()及isAnonymous()根本没有生效。
<div sec:authorize="isAuthenticated()">
<h1>你已经登录</h1>
</div>
<div sec:authorize="isAnonymous()">
<h1>你未登录</h1>
</div>
需要留意两点:
1.命名空间问题
html文件中需要添加以下命名空间,这是thymeleaf-extras-springsecurity全部版本共通的命名空间,如果你使用如“http://www.thymeleaf.org/thymeleaf-extras-springsecurity5”在IDEA中是没法智能提示的。
<html xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
2.springsecurity版本的问题
这点在github的官网(https://github.com/thymeleaf/thymeleaf-extras-springsecurity)上说得很清楚,如下:
如果你的springsecurity用的是5.x的版本,那就使用thymeleaf-extras-springsecurity5,然后再看你用的thymeleaf用的是什么版本,如果是Thymeleaf3.0.10+的话,那你thymeleaf-extras-springsecurity5的版本应该选3.0.4.RELEASE(而不是选3.0.4.RELEASE+)。
我遇到的问题是,我的thymeleaf的版本是3.0.15,结果我的设定thymeleaf-extras-springsecurity5是3.1.0.RELEASE,页面一访问就是报500的错误。
~~聊以备忘~~
标签:authorize,JAVA,3.0,springsecurity,thymeleaf,extras,sec,版本,springsecurity5 From: https://blog.51cto.com/joeyliu/5907101