• 后台系统权限管理设计实战,整合SpringSecurity和JWT(赶紧收藏~)


    【课程简介】

    本次课程将结合前后端分离的权限管理应用,精讲主流安全框架Spring Security5.x 的核心技术,带大家系统学习认证与授权的行业解决方案,掌握后端开发必备技能。通过整合SpringSecurity和JWT实现后台用户的登录和授权功能,解决用户后台管理系统中权限管理模块的设计及应用问题。

    【课程推荐】后台系统权限管理设计实战

    【主讲内容】

    1.详解认证模型jwt与RBAC授权模型

    2.Spring Security5.x搭建前后端分离项目

    3.Java开发入门到进阶技术提升与方法

    【主讲教师】

    金牌讲师:林老师

    高级Java开发工程师,7年后端开发经验,有丰富的高并发、高可用项目开发经验。在公司主导参与过项目重构,并且参与负责系统架构,技术选型等关键项目开发工作。有丰富的带组经验,能给学生提供丰富的产学研项目经验。

    安全框架

    什么是安全管理框架?

    用户认证:验证用户身份

    验证某个用户是否为系统中的合法主体,也就是说用户能否访问该系统;
    要求用户提供用户名和密码,系统通过校验用户名和密码来完成认证过程。

    用户授权:授予用户响应的权限

    验证某个用户是否有权限执行某个操作;
    系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。


    企业中使用的主流安全框架

    spirng security(30%)

    Spring Security是Spring家族中的一个安全管理框架

    Apache Shiro(30%)
    Shiro是Apache提供的一个安全框架 

    Sa-Token      (20%)
    轻量级 Java 权限认证框架

    为什么选择spring security

    功能全

    API完整;成熟的身份认证和用户授权方案;支持缓存;可以前后端分离,适应市场;可以单独使用

    搭配技术多

    配合spring boot,JWT,OAuth2 授权服务,RBAC角色访问模型等技术或模型更方便快捷

    社区资源丰富

    遇到问题,可以轻松找到成熟的解决方案;学习资料容易获取;

    对于spring更友好

    充分利用Spring IoC,DI,和AOP的功能

    Spring Security 快速入门

     结合JWT实现认证


    常用的认证方式

    Session认证

    用户登录成功后服务器会将用户的信息保存在session(当前会话)当中,每个session对应有一个sessionid,将该sessionid发送给客户端保存在cookie中。客户端下次访问的时候会将该sessioid带上,在服务器端进行比对看是否存在对应的session以此判断是否登录。

    Token认证

    用户登录成功后服务端生成一个token发送给客户端,客户端将收到的token存储在cookie或localstorage中,下次访问的时候带上token到服务端验证。

     Token的优势

     JWT是什么

     JWT是JSON WEB TOKEN的缩写,它是基于 RFC 7519 标准定义的一种可以安全传输的的JSON对象,用于在各方之间作为 JSON 对象安全地传输信息,JWT允许你解码,认证,和生成JWT。

    JWT的组成

    JWT是由三段信息构成的,将这三段信息文本用.链接一起就构成了Jwt字符串。就像这样:
    JWT token的格式:header.payload.signature

     JWT认证流程

     Spring Security整合JWT

    1.导入依赖
    2.添加JWT配置
    3.添加JWT Token工具类
    4.JWT登录授权过滤器
    5.添加安全路径白名单
    6.配置Bean对象
    7.修改SecurityConfig配置
    8.实现前后端分离功能
        8.1创建UmsAdminController用于登录获取token
        8.2在UmsAdminServiceImpl中添加login方法实现登录获取token逻辑

    RBAC

     什么是权限

    权限是资源的集合,这里的资源指的是软件中所有的内容,包括模块、菜单、页面、字段、操作功能(增删改查)等等。具体的权限配置上,目前形式多种多样,按照我个人的理解,可以将权限分为:页面权限、操作权限和数据权限

     什么是RBAC模型

    RBAC(Role-Based Access Control)即:基于角色的权限控制。通过角色关联用户,角色关联权限的方式间接赋予用户权限

     如何设计RBAC权限系统

    RBAC模型:用户-角色-权限。所以最基本的我们应该具备用户、角色、权限这三个内容。

    1、基本模型-RBAC0:定义了支持RBAC模式的任何产品的最低需求。

    2、高级模型-RBAC1、RBAC2:包含RBAC0,各自增加了独立的特点。

    RBAC1增加了角色分级概念,一个角色可以从另一个角色继承许可权。

    RBAC2增加了一些限制,强调在RBAC的不同组件中配置方面的一些限制。

    3、统一模型-RBAC3:包含了RBAC1、RBAC2,RBAC0。

    这里我们基于最基本的RBAC0来设计,大家可以根据自己项目的复杂度进行扩展

    第一步,需要角色管理列表,在角色管理列表能快速创建一个角色,且创建角色的同时能为角色分配菜单和资源并且支持创建成功的角色列表能随时进行权限配置的的修改

     第二步,需要用户管理列表,在用户管理列表能快速添加一个用户,且添加用户时有让用户关联角色的功能

     

     动态权限控制

    1、基于方法的动态权限

    2、基于路径的动态权限

    时间关系,这个就不讲了,大家可以找老师获取markdown文档,在文档中有实现的代码和流程

     

  • 相关阅读:
    2020年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试
    SkiaSharp 之 WPF 自绘 投篮小游戏(案例版)
    宝塔面板搭建thinkphp(fastadmin)项目注意事项
    通过 filesystem 的 inode 设计,理解数组与链表
    【Matlab笔记_15】正则表达式之特殊字符文本位置提取
    [附源码]JAVA毕业设计婚纱摄影管理(系统+LW)
    编写测试报告
    【C++编程语言】之 多态的基本概念 ,纯虚函数和抽象类,虚析构和纯虚析构
    论文阅读:YOLOV: Making Still Image Object Detectors Great at Video Object Detection
    Escape character is ‘^]’什么意思?怎么使用telnet
  • 原文地址:https://blog.csdn.net/JACK_SUJAVA/article/details/126461813