SpringSecurity简介
------------恢复内容开始------------
Spring Security简介
Spring Security是spring家族中的一个安全框架,相比与另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富
一般来说中大型的项目都是使用spring security来做安全框架,小项目有Shiro的比较多,因为相比与Spring Security,Shiro的上手更加的简单
一般Web应用的需要进行认证和授权
认证:验证当前访问系统的是不是本系统用户,并且要确认具体是哪个用户
授权:经过认证后判断当前用户是否有权限进行某个操作
而认证和授权也是Spring Security作安全框架的核心功能,
快速入门
1.引入Spring Security
在springboot项目中使用Spring Security我们只需要引入依赖即可实现入门案列
引入依赖后我们去访问之前的接口就会自动跳转到Spring Security的默认登录页面,默认用户名user,密码会输出在控制台,必须登录之后才能访问
认证:
登录校验流程
Spring Security完整流程
Spring Security的原理其实就是一个过滤器链,内部包含了提供各种功能的过滤器
图中只展示了核心过滤器,其他的非核心过滤器并没有在图中展示
UsernamePasswordAuthenticationFilter:负责处理我们在登陆页面填写了用户名密码后的登陆请求,入门案例的认证工作主要有它负责(认证)
ExceptionTranslationFilter:处理过滤器链中抛出的任何异常
FilterSecuritylnterceptor:负责权限校验的过滤器(授权)
认证流程
Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息
AuthenticationManager接口:定义了认证Authentication的方法
UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法
UserDetails接口:提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中
UsernamePasswordAuthenticationFilter实现类:实现了我们最常用的基于用户名和密码的认证逻辑,封装Authentication对象
DaoAuthenticationProvider实现类:是AuthenticationManager中管理的其中一个Provider,因为是要访问数据库,所以叫Dao
RBAC权限模型
RBAC(Role Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联,而不是直接将权限赋予用户
一个用户拥有若干个角色,每个角色拥有若干个权限,这样就构成了用户-角色-权限 的授权模型,这种授权模型的好处在于,不必每次创建用户时进行权限分配的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限更要少的多,减少频繁设置RBAC模型中,用户与角色之间,角色与权限之间,一般是多对多的关系
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律