✨ 如你所见 : 这或许是流程最清晰、代码最干净、注释最详细、配置最简单的 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
下的图片哟~