1、导入相关依赖
<!--Shiro-->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>1.7.1</version>
</dependency>
<!--Shiro整合Thymeleaf-->
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>2.0.0</version>
</dependency>
2、html标签引入Thymeleaf和shiro
<html xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
3、配置一个ShiroDialect
package com.oligizzz.wildfire.config;
import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @Author: GNMD
* @Description: 配置:用于thymeleaf和shiro标签配合使用
* @Date: 2021/7/16
* @Modify By:
*/
@Configuration
public class ThymeleafShiroConfiguration {
@Bean
public ShiroDialect getShiroDialect(){
return new ShiroDialect();
}
}
4、Shiro前端标签控制:
Example
<!DOCTYPE html>
<html xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<title>thymeleaf-extras-shiro</title>
</head>
<body>
<p shiro:guest="">Please <a href="login.html">login</a></p>
<p shiro:authenticated="">
Hello, <span shiro:principal=""></span>, how are you today?
</p>
</body>
</html>
Tags
The following examples show how to integrate the tags in your Thymeleaf templates. These are all implementations of the examples given in the JSP / GSP Tag Library Section of the Apache Shiro documentation.
Tags can be written in attribute or element notation:
Attribute
<p shiro:anyTag>
Goodbye cruel World!
</p>
Element
<shiro:anyTag>
<p>Hello World!</p>
</shiro:anyTag>
The guest
tag
<p shiro:guest="">
Please <a href="login.html">Login</a>
</p>
The user
tag
<p shiro:user="">
Welcome back John! Not John? Click <a href="login.html">here<a> to login.
</p>
The authenticated
tag
<a shiro:authenticated="" href="updateAccount.html">Update your contact information</a>
The notAuthenticated
tag
<p shiro:notAuthenticated=""> Please <a href="login.html">login</a> in order to update your credit card information.</p>
The principal
tag
<p>Hello, <span shiro:principal=""></span>, how are you today?</p>
or
<p>Hello, <shiro:principal/>, how are you today?</p>
Typed principal and principal property are also supported.
The hasRole
tag
<a shiro:hasRole="administrator" href="admin.html">Administer the system</a>
The lacksRole
tag
<p shiro:lacksRole="administrator"> Sorry, you are not allowed to administer the system.</p>
The hasAllRoles
tag
<p shiro:hasAllRoles="developer, project manager"> You are a developer and a project manager.</p>
The hasAnyRoles
tag
<p shiro:hasAnyRoles="developer, project manager, administrator"> You are a developer, project manager, or administrator.</p>
The hasPermission
tag
<a shiro:hasPermission="user:create" href="createUser.html">Create a new User</a>
The lacksPermission
tag
<p shiro:lacksPermission="user:delete"> Sorry, you are not allowed to delete user accounts.</p>
The hasAllPermissions
tag
<p shiro:hasAllPermissions="user:create, user:delete"> You can create and delete users.</p>
The hasAnyPermissions
tag
<p shiro:hasAnyPermissions="user:create, user:delete"> You can create or delete users.</p>