最近一朋友做了一个小程序,看着还挺好玩的,于是乎就帮朋友捎带推广了下,走过路过的小伙伴们,你心中是否也是有一个愿望,赶紧来这里和大家一起分享和实现吧~ 来,来,来,我在这里等你~
【点击????????????直接进入~】
说明
(1)JDK版本:1.8
(2)Spring Boot 2.0.6
(3)Spring Security 5.0.9
(4)Spring Data JPA 2.0.11.RELEASE
(5)hibernate5.2.17.Final
(6)MySQLDriver 5.1.47
(7)MySQL 8.0.12
需求缘起
在访问/index页面,user用户不应该能够看到admin page的链接,针对这个问题可以通过sec:authorize标签进行控制。
一、标签sec:authorize的使用
1.1 引入依赖
在pom.xml文件中添加依赖:
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity5</artifactId>
</dependency>
1.2 引入Spring Security的命名空间
在index.html页面中引入SpringSecurity命名空间:
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:th="http://www.thymeleaf.org"
xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity5">
1.3 使用sec:authorize属性
在使用sec:authorize进行角色的控制:
<p sec:authorize="hasRole('ROLE_admin')"> <a th:href="@{/hello/helloAdmin}">admin page</a></p>
<p sec:authorize="hasAnyRole('ROLE_admin','ROLE_normal')"><a th:href="@{/hello/helloUser}">user page</a>
这时候使用user用户登录的话,只能看到user拥有的角色: