3.springboot整合Shrio和Thymeleaf

1.添加pom.xml

<dependency>
    <groupId>com.github.theborakompanioni</groupId>

    <artifactId>thymeleaf-extras-shiro</artifactId>
    <version>2.0.0</version>
</dependency>

2.如果版本有问题需要改,我的没问题 如果出现问题百度合适版本再改改

<properties>
 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
 
    <java.version>1.8</java.version>
     //版本修改合适的
    <thymeleaf.version>3.0.0.RELEASE</thymeleaf.version>
   //版本修改合适的
    <thymeleaf-layout-dialect.version>2.0.0</thymeleaf-layout-dialect.version>
 
</properties>

3.shiroConfig配置添加一个bean 假如这里notfound 说明你的依赖版本有问题
,用于ShiroDialect和thymeleaf标签配合使用

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

4.拥有权限的用户才能看到有权限的功能

<!-- 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。 -->
 
<p shiro:guest="">Please <a href="login.html">login</a></p>
 
 
 
 
 
<!-- 认证通过或已记住的用户。 -->
 
<p shiro:user="">
 
Welcome back John! Not John? Click <a href="login.html">here</a> to login.
 
</p>
 
 
 
<!-- 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。 -->
 
<p shiro:authenticated="">
 
Hello, <span shiro:principal=""></span>, how are you today?
 
</p>
 
<a shiro:authenticated="" href="updateAccount.html">Update your contact information</a>
 
 
 
<!-- 输出当前用户信息,通常为登录帐号信息。 -->
 
<p>Hello, <shiro:principal/>, how are you today?</p>
 
 
 
 
 
<!-- 未认证通过用户,与authenticated标签相对应。与guest标签的区别是,该标签包含已记住用户。 -->
 
<p shiro:notAuthenticated="">
 
Please <a href="login.html">login</a> in order to update your credit card information.
 
</p>
 
 
 
<!-- 验证当前用户是否属于该角色。 -->
 
<a shiro:hasRole="admin" href="admin.html">Administer the system</a><!-- 拥有该角色 -->
 
 
 
<!-- 与hasRole标签逻辑相反,当用户不属于该角色时验证通过。 -->
 
<p shiro:lacksRole="developer"><!-- 没有该角色 -->
 
Sorry, you are not allowed to developer the system.
 
</p>
 
 
 
<!-- 验证当前用户是否属于以下所有角色。 -->
 
<p shiro:hasAllRoles="developer, 2"><!-- 角色与判断 -->
 
You are a developer and a admin.
 
</p>
 
 
 
<!-- 验证当前用户是否属于以下任意一个角色。 -->
 
<p shiro:hasAnyRoles="admin, vip, developer,1"><!-- 角色或判断 -->
 
You are a admin, vip, or developer.
 
</p>
 
 
 
<!--验证当前用户是否拥有指定权限。 -->
 
<a shiro:hasPermission="userInfo:add" href="createUser.html">添加用户</a><!-- 拥有权限 -->
 
 
 
<!-- 与hasPermission标签逻辑相反,当前用户没有制定权限时,验证通过。 -->
 
<p shiro:lacksPermission="userInfo:del"><!-- 没有权限 -->
 
Sorry, you are not allowed to delete user accounts.
 
</p>
 
 
 
<!-- 验证当前用户是否拥有以下所有角色。 -->
 
<p shiro:hasAllPermissions="userInfo:view, userInfo:add"><!-- 权限与判断 -->
 
You can see or add users.
 
</p>
 
 
 
<!-- 验证当前用户是否拥有以下任意一个权限。 -->
 
<p shiro:hasAnyPermissions="userInfo:view, userInfo:del"><!-- 权限或判断 -->
 
You can see or delete users.
 
</p>
 
<a shiro:hasPermission="pp" href="createUser.html">Create a new User</a>
 
</body>
 
</html>

5.首页,可以自己慢慢尝试:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
    <meta charset="UTF-8">
    <title>用户的测试页面</title>
</head>
<body>
<h2 th:text="${name}"></h2>
<hr/>
<div><a href="/login">登陆</a></div>
<div shiro:user="">
<p> 进入用户添加功能:<a href="/add">用户添加,登陆就可以操作</a></p>
</div>
<div shiro:hasPermission="addProduct">
<p>进入用户更新功能:<a href="/update">用户更新,拥有addProduct权限可以操作</a></p>
</div>
<div shiro:hasRole="admin">
<p >admin页面:<a href="/admin">超级管理admin角色界面</a></p>
</div>
<p shiro:hasRole="productManager">productManager产品管理员</p>

<p shiro:hasRole="orderManager">orderManager订单管理员</p>

<p shiro:hasAnyPermissions="editeOrder,updateOrder,listProduct">您的权限至少有以下的一种,editeOrder,updateOrder,listProduct</p>

<p shiro:lacksRole="admin">您不是admin角色</p>

<p  shiro:notAuthenticated="">您还没有登陆,请点击上面的登陆哦</p>

<!-- 输出当前用户信息,通常为登录帐号信息。 -->

<p>Hello, <shiro:principal/>输出当前用户的信息</p>
<!-- 已认证通过的用户。不包含已记住的用户,这是与user标签的区别所在。 -->

<p shiro:authenticated="">

    Hello, <span shiro:principal=""></span>已认证通过的用户。不包含已记住的用户

</p>
<!-- 验证当前用户是否为“访客”,即未认证(包含未记住)的用户。 -->

<p shiro:guest="">Please <a href="/login">login</a> 没有登陆可以看到的页面</p>
<!-- 认证通过或已记住的用户。 -->

<p shiro:user="">
    认证通过或已记住的用户。
    Welcome back John! Not John? Click <a href="login.html">here</a> to login.

</p>

</body>
</html>

总结:这个可以实现没有权限的看不到页面 和没有权限操作的用户不显示按钮 比如增删改按钮等,缺点就是每个div好像都需要权限认证一遍 太费了

发布了5 篇原创文章 · 获赞 3 · 访问量 58

猜你喜欢

转载自blog.csdn.net/qq_45394274/article/details/104543838
今日推荐