在《Spring-Boot-shiro权限控制》中,当用户访问没有权限的资源时,我们采取的做法是跳转到403页面,但在实际项目中更为常见的做法是只显示当前用户拥有访问权限的资源链接。配合Thymeleaf中的Shiro标签可以很简单的实现这个目标。

实际上Thymeleaf官方并没有提供Shiro的标签,我们需要引入第三方实现,地址为https://github.com/theborakompanioni/thymeleaf-extras-shiro。

引入thymeleaf-extras-shiro

在pom中引入:

<dependency><groupId>com.github.theborakompanioni</groupId><artifactId>thymeleaf-extras-shiro</artifactId><version>2.0.0</version>
</dependency>

ShiroConfig配置

引入依赖后,需要在ShiroConfig中配置该方言标签:

@Bean
public ShiroDialect shiroDialect() {return new ShiroDialect();
}

首页改造

更改index.html,用于测试Shiro标签的使用:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro" >
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body><p>你好![[${user.userName}]]</p><p shiro:hasRole="admin">你的角色为超级管理员</p><p shiro:hasRole="test">你的角色为测试账户</p><div><a shiro:hasPermission="user:user" th:href="@{/user/list}">获取用户信息</a><a shiro:hasPermission="user:add" th:href="@{/user/add}">新增用户</a><a shiro:hasPermission="user:delete" th:href="@{/user/delete}">删除用户</a></div><a th:href="@{/logout}">注销</a>
</body>
</html>

值得注意的是,在html页面中使用Shiro标签需要给html标签添加xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"

测试

启动项目,使用mrbird(角色为admin,具有user:user,user:add,user:delete权限)账户登录:

使用tester(角色为tester,仅有user:user权限)账户登录:

Spring Boot Thymeleaf中使用Shiro标签相关推荐

  1. 【thymeleaf 】在 thymeleaf 中使用 shiro 标签

    前言 sprint boot 2.3.4.RELEASE 说明 shiro 未提供对 thymeleaf 的支持.第三方项目 thymeleaf-extras-shiro 提供了在 thymeleaf ...

  2. Spring boot+Thymeleaf+easyui集成:js创建组件页面报错

    开发工具:Ideal 使用场景:Demo 前提:        环境:Spring boot +Thymeleaf+easyui 引入thymeleaf模板引擎 1 <html lang=&qu ...

  3. Spring Boot - Thymeleaf模板简介以及集成

    文章目录 Spring Boot - Thymeleaf模板简介以及集成 1.什么是Thymeleaf? 2.标准表达式 2.1 变量表达式 2.2 选择表达式/星号表达式 2.3 URL表达式 2. ...

  4. Spring Boot 架构中的国际化支持实践—— Spring Boot 全球化解决方案

    背景 Spring Boot 主要通过 Maven 或 Gradle 这样的构建系统以继承方式添加依赖,同时继承了 Spring 框架中的优秀元素,减少了 Spring MVC 架构中的复杂配置,内置 ...

  5. Spring Boot 极简集成 Shiro

    点击关注公众号,Java干货及时送达 1. 前言 Apache Shiro是一个功能强大且易于使用的Java安全框架,提供了认证,授权,加密,和会话管理. Shiro有三大核心组件: Subject: ...

  6. 在Spring Boot项目中使用Spock框架

    转载:https://www.jianshu.com/p/f1e354d382cd Spock框架是基于Groovy语言的测试框架,Groovy与Java具备良好的互操作性,因此可以在Spring B ...

  7. Guava Cache本地缓存在 Spring Boot应用中的实践

    概述 在如今高并发的互联网应用中,缓存的地位举足轻重,对提升程序性能帮助不小.而 3.x开始的 Spring也引入了对 Cache的支持,那对于如今发展得如火如荼的 Spring Boot来说自然也是 ...

  8. spring boot 项目源码_Spring Boot2 系列教程(三)理解 Spring Boot 项目中的 parent

    前面和大伙聊了 Spring Boot 项目的三种创建方式,这三种创建方式,无论是哪一种,创建成功后,pom.xml 坐标文件中都有如下一段引用: <parent><groupId& ...

  9. Spring Boot 配置中的敏感信息如何保护?

    在之前的系列教程中,我们已经介绍了非常多关于Spring Boot配置文件中的各种细节用法,比如:参数间的引用.随机数的应用.命令行参数的使用.多环境的配置管理等等. 这些配置相关的知识都是Sprin ...

最新文章

  1. R语言临床预测模型的评价指标与验证指标实战:综合判别改善指数IDI(Integrated Discrimination Improvement, IDI)
  2. python与caffe改变通道顺序
  3. 你有多了解hybris ?
  4. 路由协议redistribute重新分配“总结笔记”
  5. es6 依赖循环_require 和 import 的循环依赖详解
  6. 超漂亮的响应式个人主页
  7. 修改hostname有几种方式?(转)
  8. 安装了多个php版本,如何编译扩展
  9. SQL那些事儿(一)
  10. python学习手册-Python 重点知识整理(基于Python学习手册第四版)
  11. Spark取出(Key,Value)型数据中Value值为前n条数据
  12. win10误删的注册表能还原吗_win10电脑注册表修改后如何恢复
  13. windows开启远程Wmi服务支持
  14. oracle投毒漏洞检测,Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
  15. [Irving] Wpf DevexPress GridControl 获取选中行
  16. ubuntu18.04修改mac地址
  17. 程序员后来都干啥去了
  18. HDU 4607 Park Visit 两次DFS求树直径
  19. SQl server 2008 r2 迅雷下载地址
  20. JavaScript 入门

热门文章

  1. 中国五大战略营销公司:特劳特、先知、里斯、华与华、君智
  2. 20220216-MISC-BUUCTF-后门查杀(D盾使扫描)-数据包中的线索(base64转图片)
  3. Css 实现漂亮弧形
  4. 【单目3D目标检测】SMOKE论文解析与代码复现
  5. 电脑关于插入网卡时候耳机一响的杂音、噪音解决方案
  6. 当银行遇上开源,如何赋能
  7. Tigo Energy将在Intersolar Europe上展示太阳能机群管理与消防安全的新解决方案
  8. 米4android6.0 root,小米4刷机包 小米3/4W/C/TD通刷 安卓6.0刷机包 完美ROOT权限 简洁流畅 非凡体验...
  9. 掌握这四个word快捷,大大提高你的论文写作效率
  10. 详解双闭环控制算法(理论篇)