• 肝到头秃,阿里爆款的顶配版Spring Security笔记


    蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力、培训、出国、大公司的经历,还有很多很好的朋友。但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员,可惜我错过了,我用这五年时间和很多程序员一样在困惑和迷茫中找不到出路!

    路其实一直都在那里,只是我们看不到而已!

    以前我一直被公司和技术牵着走,并不是自己在选择技术,而是不自觉地被推到了这个位置上。想想有多少人对于自己将来要从事的职业和技术类型进行过深入思考和比较呢?当我跳出编码后,我开始思考和程序及程序员职业生涯相关的问题,最后发现,影响我们走入今天的困局的竟然是一些我们常常挂在嘴边的话。

    Spring Security

    Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。由于它是Spring生态系统中的一员,因此它伴随着整个Spring生态系统不断修正、升级,在spring boot项目中加入springsecurity更是十分简单,使用Spring Security 减少了为企业系统安全控制编写大量重复代码的工作。

    Spring Security OAuth2.0认证授权

    进入移动互联网时代,大家每天都在刷手机,常用的软件有微信、支付宝、头条等,下边拿微信来举例子说明认证

    相关的基本概念,在初次使用微信前需要注册成为微信用户,然后输入账号和密码即可登录微信,输入账号和密码登录微信的过程就是认证。

    **认证 **:用户认证就是判断一个用户的身份是否合法的过程,用户去访问系统资源时系统要求验证用户的身份信息,身份合法方可继续访问,不合法则拒绝访问。常见的用户身份认证方式有:用户名密码登录,二维码登录,手机短信登录,指纹认证等方式。

    OAuth(开放授权)是一个开放标准,允许用户授权第三方移动应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方移动应用或分享他们数据的所有内容,OAuth2.0是OAuth协议的延续版本,但不兼容OAuth 1.0(即完全废止了OAuth1.0)。
    OAuth 2.0 规范定义了一个授权(delegation)协议。

    目前学习Spring Security方面的资料相对来说比较并且并不完善。首先,SSM环境中我们通过xml配置的方式,从源码渗入开始,完成Spring Security基本的“认证”和“授权”功能讲解,其中还会融合“记住我”,CSRF拦截等技术。然后,会在SpringBoot环境中,继续展开Spring Security更深度的学习,这时的认证,也会转化成分布式方式。

    第一份笔记:Spring Security OAuth2.0认证授权

    1.基本概念

    • 什么是认证
    • 什么是会话
    • 什么是授权
    • 授权的数据模型
    • RBAC

    2.基于Session的认证方式

    • 认证流程
    • 创建工程
    • 实现认证功能
    • 实现会话功能
    • 实现授权功能

    3.Spring Security 快速上手

    • Spring Security介绍
    • 创建工程
    • 认证
    • 授权

    4.Spring Security 应用详解

    • 集成SpringBoot
    • 工作原理
    • 自定义认证
    • 会话
    • 退出
    • 授权

    5.分布式系统认证方案

    • 什么是分布式系统
    • 分布式认证需求
    • 分布式认证方案

    6.OAuth2.0

    • OAuth2.0介绍
    • Sping Cloud Security OAuth2
    • JWT令牌
    • 完善环境配置

    7.Spring Security 实现分布式系统授权

    • 需求分析
    • 注册中心
    • 网关
    • 转发明文token给微服务
    • 微服务用户鉴权拦截
    • 集成测试
    • 扩展用户信息.

    第二份:企业开发首选的安全框架Spring Security笔记

    第二部分:初识Spring Security

    • 1.权限相关概念介绍
    • 2.引入认证和授权概念
    • 3.Springsecurity介绍
    • 4.这里有十一个过滤器原理说明
    • 5.数据库环境准备
    • 6.数据库使用mysql,这里完成用户,角色,权限三张表准备。
    • 7.独立web工程springsecurity权限控制案例技术选型说明
    • 8.springmvc+spring+mybatis+jsp+adminLTE
    • 9.springsecurity认证功能实现
    • 10.这时的认证,还未真正从数据库中获取角色信息。

    第二部分:Spring Security授权操作

    • 11.实现用户管理角色查询功能
    • 12.为授权做准备
    • 13.实现用户角色的修改功能
    • 14.可增添可删减用户的角色
    • 15.在jsp页面上采用springsecurity动态标签控制菜单的显示或隐藏
    • 16.Springsecurity在独立web工程中使用,其实并未用到权限表,就是说菜单并没有入库,直接全部写死在页面上,使用springsecurity动态标签控制显示或隐藏。
    • 17.在后台使用注解真正控制用户对资源的访问权限
    • 18.这里会使用jsr250,springEL,springsecurity三类注解来演示
    • 19.403异常的处理
    • 20.用三种方式来处理403异常的拦截

    第三部分:SpringSecurity整合SpringBoot集中式版

    • 21.Swagger制作restfulAPI介绍
    • 22.既然要使用前后端分离的方式,怎么能少了API?
    • 23.将后台所有返回页面的处理器改成返回数据的处理器
    • 24.都前后端分离了,再返回页面还有什么意义?
    • 25.说明前后端分离后项目中认证的问题
    • 26.这时的页面和后台在不同的服务器中,所以会存在session不能共享的问题。
    • 27.介绍JWT
    • 28.说明JWT的功能和作用
    • 29.Springsecurity整合JWT
    • 30.通过springsecurity加JWT的方式来实现前后端分离的认证

    第四部分:OAuth2.0实战案例

    • 31.将所有页面换成vue
    • 32.前后端分离jsp自然就不能再用了
    • 33.创建权限表并将所有菜单入库
    • 34.之前独立一个web工程的时候,菜单是直接写死在页面上并没有入库的,而前后端分离后springsecurity的动态标签无法使用了。
    • 35.完成角色管理权限查询功能
    • 36.为动态展示菜单做准备。
    • 37.完成修改角色下菜单的功能
    • 38.还是为动态展示菜单做准备
    • 39.介绍element-ui的使用
    • 40.页面展示菜单技术准备
    • 41.认证通过后在页面上动态展示菜单
    • 42.使用element-ui完成动态菜单的展示。

    有需要获取文章中完整版资料的小伙伴,可以点击文末下方传送门,即可获得免费领取方式!!!(百分百免费分享)

  • 相关阅读:
    反转链表的升级版——链表内指定区间反转
    【各种**问题系列】什么是CI&CD(持续集成和持续交付、部署)
    一文解读ISO26262安全标准:概念阶段
    大数据分析与可视化课题
    FPGA片内RAM读写测试实验+逻辑分析仪ila
    CentOS 7操作系统磁盘配额:
    C语言运算符优先级一览表
    cpp文件操作
    判断两个DataFrame和array的列(Series)是否相同
    Chrome扩展程序是如何进行消息传递的
  • 原文地址:https://blog.csdn.net/m0_70748381/article/details/127771559