✨ 如你所见 : 这或许是流程最清晰、代码最干净、注释最详细、配置最简单的 Shiro 项目啦 ! 非常适合进阶学习 SpringBoot 与 Shiro 的同学,是一个非常具有参考与学习价值的权限管理项目啦~
| 工具 | 版本或描述 |
|---|---|
OS | Windows 7 / 10 |
JDK | 1.7+ / 11+ |
IDE | IntelliJ IDEA 2017.3 / 2019.1 |
Maven | 3.3.1 / 3.6.0 |
MySQL | 5.6.4 / 8.0.0+ |
| 模块 | 释义 |
|---|---|
shiro-core | 核心业务类模块,提供基本的数据操作、工具处理等 |
shiro-admin | 后台管理模块 |
- 使用
IDE导入本项目 - 新建数据库
CREATE DATABASE shiro; - 导入数据库
docs/db/shiro.sql - 修改(
resources/application.yml)配置文件- 数据库链接属性(可搜索
datasource或定位到L.19) - redis配置(可搜索
redis或定位到L.69)
- 数据库链接属性(可搜索
- 运行项目(三种方式)
- 项目根目录下执行
mvn -X clean package -Dmaven.test.skip=true编译打包,然后执行java -jar shiro-admin/target/shiro-admin.jar - 项目根目录下执行
mvn springboot:run - 直接运行
ShiroAdminApplication.java
- 项目根目录下执行
- 浏览器访问
http://127.0.0.1:8080
超级管理员 : 账号:
root, 密码 :123456
普通管理员 : 账号:
admin, 密码 :123456
链接 :
http://127.0.0.1:8080/druid/index.html
用户名 :
zyd-druid, 密码 :zyd-druid
│ .gitignore │ LICENSE │ pom.xml │ README.md │ ├─docs │ ├─db │ │ shiro.sql │ │ │ └─img │ admin-resource.PNG │ admin-role.PNG │ admin-user.PNG │ db-datasource.PNG │ db-login.PNG │ index.PNG │ login.PNG │ role-role[admin].PNG │ root-resource.PNG │ root-role-[root].PNG │ root-role.PNG │ root-user.PNG │ sql-model.png │ ├─shiro-admin │ │ .gitignore │ │ pom.xml │ │ │ └─src │ ├─main │ │ ├─java │ │ │ └─com │ │ │ └─zyd │ │ │ └─shiro │ │ │ │ ShiroAdminApplication.java │ │ │ │ │ │ │ └─controller │ │ │ ErrorPagesController.java │ │ │ ExceptionHandleController.java │ │ │ PassportController.java │ │ │ RenderController.java │ │ │ RestResourcesController.java │ │ │ RestRoleController.java │ │ │ RestUserController.java │ │ │ │ │ └─resources │ │ │ application.yml │ │ │ logback.xml │ │ │ │ │ ├─static │ │ │ └─assets │ │ │ ├─css │ │ │ │ zhyd.core.css │ │ │ │ │ │ │ ├─images │ │ │ │ default-portrait.png │ │ │ │ favicon.ico │ │ │ │ loading.gif │ │ │ │ │ │ │ └─js │ │ │ jquery-form.js │ │ │ validator.js │ │ │ zhyd.core.js │ │ │ zyd.table.js │ │ │ zyd.tool.js │ │ │ │ │ └─templates │ │ │ index.ftl │ │ │ login.ftl │ │ │ │ │ ├─error │ │ │ 401.ftl │ │ │ 403.ftl │ │ │ 404.ftl │ │ │ 500.ftl │ │ │ │ │ ├─layout │ │ │ footer.ftl │ │ │ header.ftl │ │ │ setting.ftl │ │ │ sidebar.ftl │ │ │ │ │ ├─resources │ │ │ list.ftl │ │ │ │ │ ├─role │ │ │ list.ftl │ │ │ │ │ └─user │ │ list.ftl │ │ │ └─test │ └─java │ └─com │ └─zyd │ └─shiro │ ShiroAdminApplicationTests.java │ └─shiro-core │ .gitignore │ pom.xml │ └─src ├─main │ ├─java │ │ └─com │ │ └─zyd │ │ └─shiro │ │ ├─business │ │ │ ├─consts │ │ │ │ CommonConst.java │ │ │ │ SessionConst.java │ │ │ │ │ │ │ ├─entity │ │ │ │ Resources.java │ │ │ │ Role.java │ │ │ │ RoleResources.java │ │ │ │ User.java │ │ │ │ UserRole.java │ │ │ │ │ │ │ ├─enums │ │ │ │ ResourceTypeEnum.java │ │ │ │ ResponseStatus.java │ │ │ │ UserGenderEnum.java │ │ │ │ UserStatusEnum.java │ │ │ │ UserTypeEnum.java │ │ │ │ │ │ │ ├─service │ │ │ │ │ ShiroService.java │ │ │ │ │ SysResourcesService.java │ │ │ │ │ SysRoleResourcesService.java │ │ │ │ │ SysRoleService.java │ │ │ │ │ SysUserRoleService.java │ │ │ │ │ SysUserService.java │ │ │ │ │ │ │ │ │ └─impl │ │ │ │ ShiroServiceImpl.java │ │ │ │ SysResourcesServiceImpl.java │ │ │ │ SysRoleResourcesServiceImpl.java │ │ │ │ SysRoleServiceImpl.java │ │ │ │ SysUserRoleServiceImpl.java │ │ │ │ SysUserServiceImpl.java │ │ │ │ │ │ │ ├─shiro │ │ │ │ ├─credentials │ │ │ │ │ CredentialsMatcher.java │ │ │ │ │ RetryLimitCredentialsMatcher.java │ │ │ │ │ │ │ │ │ └─realm │ │ │ │ ShiroRealm.java │ │ │ │ │ │ │ └─vo │ │ │ ResourceConditionVO.java │ │ │ RoleConditionVO.java │ │ │ UserConditionVO.java │ │ │ │ │ ├─framework │ │ │ ├─config │ │ │ │ DruidConfig.java │ │ │ │ ErrorPagesConfig.java │ │ │ │ FreeMarkerConfig.java │ │ │ │ MybatisConfig.java │ │ │ │ RedisConfig.java │ │ │ │ ShiroConfig.java │ │ │ │ WebMvcConfig.java │ │ │ │ │ │ │ ├─exception │ │ │ │ ZhydException.java │ │ │ │ │ │ │ ├─holder │ │ │ │ RequestHolder.java │ │ │ │ SpringContextHolder.java │ │ │ │ │ │ │ ├─interceptor │ │ │ │ RememberAuthenticationInterceptor.java │ │ │ │ │ │ │ ├─object │ │ │ │ AbstractBO.java │ │ │ │ AbstractDO.java │ │ │ │ AbstractService.java │ │ │ │ BaseConditionVO.java │ │ │ │ PageResult.java │ │ │ │ ResponseVO.java │ │ │ │ │ │ │ ├─property │ │ │ │ DruidProperties.java │ │ │ │ RedisProperties.java │ │ │ │ │ │ │ ├─redis │ │ │ │ CustomRedisManager.java │ │ │ │ │ │ │ ├─runner │ │ │ │ BlogApplicationRunner.java │ │ │ │ │ │ │ └─tag │ │ │ CustomTagDirective.java │ │ │ │ │ ├─persistence │ │ │ ├─beans │ │ │ │ SysResources.java │ │ │ │ SysRole.java │ │ │ │ SysRoleResources.java │ │ │ │ SysUser.java │ │ │ │ SysUserRole.java │ │ │ │ │ │ │ └─mapper │ │ │ SysResourceMapper.java │ │ │ SysRoleMapper.java │ │ │ SysRoleResourcesMapper.java │ │ │ SysUserMapper.java │ │ │ SysUserRoleMapper.java │ │ │ │ │ ├─plugin │ │ │ BaseMapper.java │ │ │ │ │ └─util │ │ AesUtil.java │ │ IpUtil.java │ │ Md5Util.java │ │ PasswordUtil.java │ │ ResultUtil.java │ │ SessionUtil.java │ │ │ └─resources │ └─mybatis │ SysResourceMapper.xml │ SysRoleMapper.xml │ SysUserMapper.xml │ SysUserRoleMapper.xml │ └─test └─java └─com └─zyd └─shiro ListUtilTest.java ShiroCoreApplicationTests.java 📸 用户登录页
📸 系统首页
📸 资源管理页
📸 角色管理页
📸 为角色分配资源
📸 用户管理页
📸 为用户分配角色
注 : 以上图片为
root用户登录后的部分截屏,admin用户的界面请参考docs/img下的图片哟~
