252.Spring Boot+Spring Security:标签sec:authorize的使用_Spring Boot+Spring S

最近一朋友做了一个小程序,看着还挺好玩的,于是乎就帮朋友捎带推广了下,走过路过的小伙伴们,你心中是否也是有一个愿望,赶紧来这里和大家一起分享和实现吧~ 来,来,来,我在这里等你~ 

【点击????????????直接进入~】

 

说明

(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拥有的角色:

252.Spring Boot+Spring Security:标签sec:authorize的使用_Spring Boot+Spring S_02