版权声明:本文为 小异常 原创文章,非商用自由转载-保持署名-注明出处,谢谢!
本文网址:https://sunkuan.blog.csdn.net/article/details/107154646
文章目录
有的时候我们想在页面上直接动态的检测该用户是否拥有某个角色或者某个权限,我们也能将其实现。
本篇博客将结合 Thymeleaf 模板引擎为大家演示如何在页面中动态检测。我们若使用 Shiro 结合 Thymeleaf,必须先将 Shiro 整合 Thymeleaf,才能在 Thymeleaf 中使用 Shiro 的命名空间。
一、引入 Shiro 整合 Thymeleaf 依赖
<!-- Shiro 整合 Thymeleaf 依赖 -->
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>2.0.0</version>
</dependency>
二、在 Shiro 配置类中配置 Shrio 方言
@Configuration
public class ShiroConfig {
// ...
/**
* 配置 ShiroDialect(Shiro 方言) 对象
*/
@Bean
public ShiroDialect shiroDialect() {
return new ShiroDialect();
}
}
三、修改 main.html 页面
添加 Shiro 的命名空间:
xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro"
使用
shiro-hasPermission
标签属性就能检测是否拥有某个权限;使用
shiro-hasRole
标签属性就能检测是否拥有某个角色。
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.thymeleaf.org/thymeleaf-extras-shiro">
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<link rel="shortcut icon" href="#">
</head>
<body>
<h1>首页</h1>
<div th:if="${session.account} != null">
<h2>欢迎<span th:text="${session.account.username}"></span>
<a href="/logout">退出</a>
</h2>
</div>
<!-- 检测是否拥有某个权限 -->
<span shiro:hasPermission="manage">
<a href="/manage">manage</a>
</span>
|
<!-- 检测是否拥有某个角色 -->
<span shiro:hasRole="administrator">
<a href="/administrator">administrator</a>
</span>
</body>
</html>