目次
前言
本文介绍什么是授权,Spring Security的授权配置有哪些,共同以下内容观看结果更佳!!!
- 什么是授权,授权有哪些流程,Spring Security的授权配置有几种?请检察九、Spring Boot集成Spring Security之授权概述
- HTTP请求授权的实现原理是什么,如何配置HTTP请求授权?请检察十、Spring Boot集成Spring Security之HTTP请求授权
- 方法授权的实现原理是什么,如何配置方法授权?请检察十一、Spring Boot集成Spring Security之方法授权
- 如何实现基于RBAC模子的授权方式?请检察十二、Spring Boot集成Spring Security之基于RBAC模子的授权
一、授权概述
授权简朴来说就是判断某个用户能不能访问某个接口,可以访问时授权成功,不能访问时授权失败;用户包罗已登录的用户和未登录的用户即匿名用户,接口包罗接口地址和接口的请求类型,接口对于系统使用者来说可以简朴理解为菜单按钮。
现在最盛行的权限模子是RBAC权限模子,这种模子的思想是将菜单/接口/权限按照完成某项任务的最小权限进行分组,分出来的组即为角色,再按照用户的职责授予相应的角色。此中菜单/接口/权限和角色之间为多对多的关系,即一项任务可能需要多个操作大概多项任务可能需要同一个操作;用户与角色之间也是多对多的关系,即一个用户可能需要完成多项任务大概不同用户可能需要完成雷同的任务。
Spring Security的授权还包罗对认证结果、接口请求参数、接口返回值等更细粒度的处理。
二、用户权限
Spring Security中用户的权限接口为GrantedAuthority,并提供默认实现SimpleGrantedAuthority,SimpleGrantedAuthority有一个String属性role,role用于判断用户是否允许访问接口。
在配置接口权限时还有两个权限的概念role(hasXxxRole)和authority(hasXxxAuthority),role和authority最终都会转化为SimpleGrantedAuthority的role属性,并和用户的权限作对比,以判断用户是否允许访问接口,唯一的区别是role转为SimpleGrantedAuthority的role属性时会默认添加ROLE_前缀,而authority会直接转化为SimpleGrantedAuthority的role属性,即ROLE_{role}={authority}=simpleGrantedAuthority.role。
三、用户授权流程
- 认证时设置用户权限
- 授权时获取接口及其需要的权限
- 校验用户权限和接口权限是否有交集
- 有交集时校验成功调用接口
- 没有交集时校验失败抛出非常
三、Spring Security授权方式
1、请求级别授权
- 实现方式:过滤器
- 适用场景
- 基于URL的访问控制
- 统一的安全策略
- 简朴地权限控制
2、方法级别授权
- 实现方式:AOP(拦截器)
- 适用场景
- 细粒度的访问控制
- 动态权限检查
- 基于业务逻辑的权限控制
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |