配好thymeleaf-extras-springsecurity5之后
thymeleaf页面使用sec:authorize="!isAuthenticated()"判断是否已经登录竟然失败了
没有反应,额,也不是没反应,这个包围的代码在浏览器是看不到了
<div sec:authorize="!isAuthenticated()">
<!--未登录-->
<a href="/login" class="blog-user">
<i class="fa fa-sign-in"></i>
</a>
</div>
然后各种度,一般说是版本不对应,经仔细比对,thymeleaf是3.0.12的,security是5.5.1版本的,页面引用的命名空间也是用的全版本通用的,值得注意的是,这个命名空间只会影响idea的提示/自动补充,不会影响实际使用。
Namespace
The namespace for all versions of this dialect is http://www.thymeleaf.org/extras/spring-security.
<html xmlns:sec="http://www.thymeleaf.org/extras/spring-security">
Getting the namespace incorrect won't impact processing of your template. It might however impact your IDE when it comes to things like suggestions/auto-completion in your templates.
后面才发现,在开发阶段我把路径当作静态文件的路径放到了放行的地方,即继承了WebSecurityConfigurerAdapter的配置类,如下方的 “/blog/**”
@Override
public void configure(WebSecurity web) throws Exception {
// 设置拦截忽略文件夹,可以对静态资源放行
web.ignoring().antMatchers(
"/",
"/index",
"/blog/**"
);
}
然后想起了有几篇文章提到的,没有走spring security的过滤器之类的,应该是这个原因引起的,将"/blog/**"放到这个函数下面即可。
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
//用于配置直接放行的请求
.antMatchers("/blog/**").permitAll()
................
}
官网:
https://github.com/thymeleaf/thymeleaf-extras-springsecurity