Shiro + Spring Boot 实现权限管理系统

最近在蓝桥(实验楼)发布了一门以 Shiro 为主,Spring Boot 为辅,实现一个简单权限管理系统的【课程】,对 Shiro 的核心理念和使用进行了总结。欢迎大家支持。如果你有兴趣购买,请使用这个优惠码: m4fx6AQ9,可获得一些优惠。

课程主要包含下面的知识点:

  • Shiro 身份认证理论和实践
  • Shiro 授权理论和实践
  • Shiro 会话管理
  • Shiro 原生 API 的使用
  • 在 Spring Boot 项目中集成 Shiro
  • 使用 Shiro 实现登录和登出功能
  • 使用 Shiro 实现用户角色管理
  • 使用 Shiro 实现用户管理
  • Shiro 基于注解的权限控制
  • 基于资源的访问控制
  • 根据系统数据模型配置 Shiro Realm
  • Shiro 与 Spring Security 的简单对比

简介

Apache Shiro 是一个强大且易用的 Java 安全框架,能够让开发者以非常清晰的方式处理身份认证、授权、会话管理以及密码加密。使用其易于理解的 API,开发者可以轻松,高效的为任何应用程序,从最小的移动应用程序到大型的网络和企业应用程序添加安全管理功能。

该门课程将会以理论学习与实战相结合的方式分别对 Shiro 的身份认证和授权这两个最重要的安全功能着重进行学习。

理论学习部分将会先后对 Shiro 的体系结构,关键概念和术语,身份认证(Authentication),授权(Authorization)和会话管理进行介绍。除了纯理论介绍外,还会给出使用 Shiro 原生 API 实现的使用示例,帮助理解和记忆。

实战部分为一个简单的用户权限管理系统。借助该系统,管理者(用户)可以方便的创建角色和用户,创建角色后为其分配权限,创建用户后将一个或多个角色绑定到用户。 同时管理者可以在任何时候修改这些关系(安全模型),即使是在服务正在运行的时候,从而达到动态修改权限的目的。

实战项目使用 Shiro 作为安全框架,基于 Spring Boot + Mybatis 进行开发。开发重点将落在 RESTful 风格的 HTTP 接口开发,对基于注解的 Shiro 访问控制以及基于资源的访问控制的实践上,没有用户界面,但使用了 swagger-ui 作为文档和接口功能验证工具。

用户权限管理系统包含三个主要的功能模块:角色管理,用户管理以及通知管理(通知是一个为了展示用户权限管理系统权限的动态分配能力而模拟的应用资源)。下面的截图展示了开发完成后角色管理的部分接口:

图片描述