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

前言:

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

Spring Security的主要特点包括:

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

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

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

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

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

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

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

框架手把手教学博客(亲身体验):https://blog.csdn.net/weixin_43847283/article/details/124075302?spm=1001.2014.3001.5506

视频讲解:

https://www.bilibili.com/video/BV1mm4y1X7Hc

 个人学习心得:

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

思路分析:

认证、授权——SpringSecurity框架学习心得_第1张图片

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

思路分析:

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

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

具体实现参考上方链接。

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

RBAC权限模型

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

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

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

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

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

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

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

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

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

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

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


gitee链接:SpringSecurityDemo: SpringSecurity框架学习


 认证、授权——SpringSecurity框架学习心得_第2张图片

你可能感兴趣的:(Spring框架,spring,java,后端)