认证、授权——SpringSecurity框架

98 阅读7分钟

前言:

Spring Security是一个开源的安全框架,它提供了全面的安全解决方案,包括用户身份认证、权限管理、攻击防护等。Spring Security建立在Spring框架之上,因此它具有良好的灵活性和可扩展性,并且易于与其他Spring组件集成。
Spring Security的主要特点包括:

支持多种身份认证方法:Spring Security支持多种身份认证方法,包括基于表单的身份认证、HTTP基本认证、OpenID等。  
支持多种权限管理方式:Spring Security提供了多种权限管理方式,包括基于角色的访问控制、基于表达式的访问控制等。  
强大的防护机制:Spring Security提供了多种防护机制,包括CSRF防护、XSS防护等,可以有效地防止Web攻击。  
可配置性:Spring Security提供了全面的配置选项,可以根据实际需求进行灵活的配置。  
易于扩展:Spring Security支持自定义认证方法和权限管理机制,可以根据实际需求进行扩展。  
提供了全面的API支持:Spring Security提供了丰富的API支持,可以在应用程序中灵活地使用。  

总之,Spring Security是一个功能强大且易于使用的安全框架,可以为Web应用程序提供全面的安全解决方案,并且易于扩展和定制化。

框架手把手教学博客(亲身体验):blog.csdn.net/weixin_4384…
视频讲解: www.bilibili.com/video/BV1mm…

个人学习心得:

​ 认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户

思路分析:

6.149.png 授权:经过认证后判断当前用户是否有权限进行某个操作 思路分析: 在SpringSecurity中,会使用默认的FilterSecurityInterceptor来进行权限校验。 ilterSecurityInterceptor中会从SecurityContextHolder获取其中的Authentication,然后获取其中的权限信息。当前用户是否拥有访问当前资源所需的权限。
所以我们在项目中只需要把当前登录用户的权限信息也存入Authentication。​ 然后设置我们的资源所需要的权限即可。
具体实现参考上方链接。
从数据库中查看权限信息,需要采用一个模型:

RBAC权限模型

RBAC (Role-Based Access Control),中文名为基于角色的访问控制,是一种广泛应用的权限管理模型,它将用户的角色授权与权限关联起来,在管理上更加灵活、易于扩展和维护。

RBAC权限模型主要包括以下三个核心概念:

1.角色(Role):角色表示一组具有相似功能或权限的操作集合,如管理员、操作员、普通用户等。在RBAC模型中,角色是权限的抽象,用于对用户进行授权。
2.权限(Permission):权限表示能够执行的操作或访问的资源,如访问网站、修改数据等。
3.用户(User):用户指使用系统的个体,可以分为管理员、操作员、普通用户等。
在RBAC权限模型中,通常使用以下三种方式进行权限控制: 1角色的权限控制:将一组权限授予角色,然后将角色分配给用户。用户的权限通过其所属角色来控制。
2资源的权限控制:将权限授予特定的资源,例如目录、文件、数据库记录等。
73.用户的权限控制:将权限直接授予用户,通常用于在角色之外对某些特定权限进行授权。 RBAC权限模型由于其灵活性,已经广泛应用于许多领域,如企业信息系统、网络安全等。通过使用基于角色的授权,管理员可以更好地管理用户权限,从而提高系统的安全性和可靠性。

参考链接:zhuanlan.zhihu.com/p/513142061

认证、授权——SpringSecurity框架学习心得

别活在过去i

已于 2023-07-04 13:25:47 修改

阅读量4.9k 收藏

点赞数 1 公开 分类专栏: Spring框架 文章标签: spring java 后端 编辑 版权

Spring框架 专栏收录该内容 27 篇文章0 订阅 前言: Spring Security是一个开源的安全框架,它提供了全面的安全解决方案,包括用户身份认证、权限管理、攻击防护等。Spring Security建立在Spring框架之上,因此它具有良好的灵活性和可扩展性,并且易于与其他Spring组件集成。

Spring Security的主要特点包括:

支持多种身份认证方法:Spring Security支持多种身份认证方法,包括基于表单的身份认证、HTTP基本认证、OpenID等。

支持多种权限管理方式:Spring Security提供了多种权限管理方式,包括基于角色的访问控制、基于表达式的访问控制等。

强大的防护机制:Spring Security提供了多种防护机制,包括CSRF防护、XSS防护等,可以有效地防止Web攻击。

可配置性:Spring Security提供了全面的配置选项,可以根据实际需求进行灵活的配置。

易于扩展:Spring Security支持自定义认证方法和权限管理机制,可以根据实际需求进行扩展。

提供了全面的API支持:Spring Security提供了丰富的API支持,可以在应用程序中灵活地使用。

总之,Spring Security是一个功能强大且易于使用的安全框架,可以为Web应用程序提供全面的安全解决方案,并且易于扩展和定制化。

框架手把手教学博客(亲身体验):blog.csdn.net/weixin_4384…

视频讲解:

www.bilibili.com/video/BV1mm…

个人学习心得: ​ 认证:验证当前访问系统的是不是本系统的用户,并且要确认具体是哪个用户

思路分析:

​ 授权:经过认证后判断当前用户是否有权限进行某个操作

思路分析: 在SpringSecurity中,会使用默认的FilterSecurityInterceptor来进行权限校验。在FilterSecurityInterceptor中会从SecurityContextHolder获取其中的Authentication,然后获取其中的权限信息。当前用户是否拥有访问当前资源所需的权限。

​ 所以我们在项目中只需要把当前登录用户的权限信息也存入Authentication。​ 然后设置我们的资源所需要的权限即可。

具体实现参考上方链接。

从数据库中查看权限信息,需要采用一个模型:

RBAC权限模型 RBAC (Role-Based Access Control),中文名为基于角色的访问控制,是一种广泛应用的权限管理模型,它将用户的角色授权与权限关联起来,在管理上更加灵活、易于扩展和维护。

RBAC权限模型主要包括以下三个核心概念:

角色(Role):角色表示一组具有相似功能或权限的操作集合,如管理员、操作员、普通用户等。在RBAC模型中,角色是权限的抽象,用于对用户进行授权。

权限(Permission):权限表示能够执行的操作或访问的资源,如访问网站、修改数据等。

用户(User):用户指使用系统的个体,可以分为管理员、操作员、普通用户等。

在RBAC权限模型中,通常使用以下三种方式进行权限控制:

基于角色的权限控制:将一组权限授予角色,然后将角色分配给用户。用户的权限通过其所属角色来控制。

基于资源的权限控制:将权限授予特定的资源,例如目录、文件、数据库记录等。

基于用户的权限控制:将权限直接授予用户,通常用于在角色之外对某些特定权限进行授权。

RBAC权限模型由于其灵活性,已经广泛应用于许多领域,如企业信息系统、网络安全等。通过使用基于角色的授权,管理员可以更好地管理用户权限,从而提高系统的安全性和可靠性。

参考链接:zhuanlan.zhihu.com/p/513142061

gitee链接:SpringSecurityDemo: SpringSecurity框架学习 image.png