springboot系列学习(二十六):spring Security框架整合thymeleaf,在前段也可以实现安全框架,一步一步带你整合使用,小白必看(三)

2020-11-20 14:10:38 浏览数 (4)

之前的认证授权,退出功能已经在配置类里面实现了。现在还有一个问题

问题

就是前端页面的东西,不同的权限看见的东西是不一样的,这个咋实现。之前我们可以在前段用if判断来看当前的用户的权限进行,但是现在可以和thymeleaf整合,使用这个就可以实现。具体如何做

整合步骤

1 导入依赖

代码语言:javascript复制
<dependency>
   <groupId>org.thymeleaf.extras</groupId>
   <artifactId>thymeleaf-extras-springsecurity5</artifactId>
   <version>3.0.4.RELEASE</version>
</dependency>

2 前段导入springsecurity和thymeleaf的标签

手打这个之后,alt enter 这个之后就导入了,我们就可以看到页面出现了这个

其实这个就可以使用了,但是我希望在页面写标签的时候有提示,那么这个就要写全,所以这样写

这样在前段就可以对应的标签

代码语言:javascript复制
如果注销404了,就是因为它默认防止csrf跨站请求伪造,因为会产生安全问题,我们可以将请求改为post表单提交,或者在spring security中关闭csrf功能;我们试试:在 配置中增加 http.csrf().disable();

http.csrf().disable();//关闭csrf功能:跨站请求伪造,默认只能通过post方式提交logout请求
http.logout().logoutSuccessUrl("/");
代码语言:javascript复制
         <!--登录注销-->
            <div class="right menu">

                <!--如果未登录-->
                <div sec:authorize="!isAuthenticated()">
                    <a class="item" th:href="@{/login}">
                        <i class="address card icon"></i> 登录
                    </a>
                </div>

                <!--如果已登录-->
                <div sec:authorize="isAuthenticated()">
                    <a class="item">
                        <i class="address card icon"></i>
                        用户名:<span sec:authentication="principal.username"></span>
                        角色:<span sec:authentication="principal.authorities"></span>
                    </a>
                </div>

                <div sec:authorize="isAuthenticated()">
                    <a class="item" th:href="@{/logout}">
                        <i class="address card icon"></i> 注销
                    </a>
                </div>
            </div>
        </div>
    </div>

0 人点赞