首先完成Shiro整合SSM完成授权和认证
这里看我的这一篇博客就可以了,字数较多就不水了,毕竟整合thymeleaf涉及的大部分是前端代码,后端部分只修改了一丢丢而已
该项目源码自取
后端修改的部分
pom.xml
添加thymeleaf的整合依赖
<!--添加thymeleaf与Shiro的整合依赖包-->
<dependency>
<groupId>com.github.theborakompanioni</groupId>
<artifactId>thymeleaf-extras-shiro</artifactId>
<version>2.0.0</version>
</dependency>
- 在controller中添加一个RequestMapping
//注销
@RequestMapping("/logout")
public String logout(){
Subject currentUser = SecurityUtils.getSubject();
currentUser.logout();
return "index";
}
- 前端首页进行修改
注意:前端Shiro整合thymeleaf时要添加命名空间xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"
至于标签的作用以后我会再写一篇博客来介绍
<!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</title>
</head>
<body>
<h1>Welcome</h1>
<p shiro:principal property="name"></p>
<a th:href="@{/user/add}">add</a>
<!--只有登陆的人才会看到-->
<a th:href="@{/user/update}">update</a>
<!--只有登陆拥有uder:delete权限的用户才会显示-->
<a shiro:hasPermission="user:delete" th:href="@{/user/delete}">delete</a>
<br>
<!--未登录才会显示-->
<shiro:notAuthenticated>
<a th:href="@{/toLogin}">登陆</a>
</shiro:notAuthenticated>
<!--登陆后才会显示-->
<shiro:authenticated>
<a th:href="@{/logout}">注销</a>
</shiro:authenticated>
</body>
</html>