Spring Security 中的一些重要术语

javaobject oriented programmingprogramming更新于 2024/8/17 12:18:00

Spring 是当今最著名的 Java Web 框架。它用于通过 Java 编程语言构建 Web 应用程序。要使用此框架,需要具备扎实的 Java 背景和理解能力。

保护我们宝贵的数据免受不道德行为的侵害至关重要。在本文中,我们将介绍 Spring Security 中的一些重要术语,这些术语有助于我们保护用户的数据。我们不会深入分析任何术语。

与 Spring Security 相关的术语

Spring Security 是一个开源安全框架,可作为您的 Spring 应用程序的全面安全解决方案。它可以轻松地与 Spring 和 Spring boot 框架集成。它处理应用程序安全的主要领域,例如身份验证、授权、CSRF 等。

让我们讨论一些与 Spring Security 相关的术语 -

身份验证

它是检查或验证与应用程序交互的人的身份的过程。这是利用应用程序的其他服务的最重要步骤,必须验证用户的身份。验证用户的常见做法之一是输入用户名和密码。 Spring Security 有自己的一套身份验证功能,可以与以下技术集成:-

  • HTTP 身份验证。

  • LDAP,提供跨平台身份验证需求。

  • OpenID 身份验证。

  • 基于表单的身份验证

  • 自动身份验证(如"记住我")是登录表单上可用的复选框,用于避免在一定时间内重新进行身份验证。

Spring Security 有一个称为内存身份验证的特殊功能,允许将用户数据存储在应用程序内存或 RAM 中。我们可以在不打扰其他数据库的情况下执行身份验证。它节省了我们的时间并提高了效率。

授权

在对用户进行身份验证后,下一步是验证特定用户可以执行哪种操作,此活动称为授权。例如,人力资源管理系统有两种类型的用户,一种是员工,另一种是管理员。员工和管理员的权限之间存在一些差异。普通员工不能添加、更新或删除任何类型的信息,而管理员可能有权这样做。

让我们用非常简单的语言来了解 Spring Security 中的授权是如何工作的。在身份验证过程中,会创建一个"GrantedAuthority"对象列表。这些对象代表授予某个用户或系统的权限。然后,这些对象被"AuthenticationManager"插入到"Authentication"对象中。在随后的授权决策过程中,"AccessDecisionMangers"会读取"GrantedAuthority"对象。

密码编码

在全球范围内,大多数设备都因密码薄弱而遭到黑客攻击并面临网络钓鱼攻击。显然,加强密码是另一个话题。我们将在这里讨论 Spring Security 采取的安全措施。

最糟糕的错误可能是将用户的密码存储在纯文本中。值得庆幸的是,Spring Security 允许使用各种密码编码器方法,例如 MD5 和 scrypt。默认情况下,使用 BCrypt 来加密密码。所有这些技术都属于哈希算法,我们不需要自己开发它们。它们写在"<password-encoder>"元素内。

Principal

这个术语在 Spring Security 框架中具有特殊含义。它指的是与您的应用程序交互并执行任何类型操作的用户、设备或任何类型的系统。

过滤器

为了应用其服务,Spring Security 使用了一系列过滤器。每当来自客户端的请求时,它都会先经过这些过滤器,然后再执行。下面讨论了一些过滤器的用例 -

  • BasicAuthenticationFilter - 此过滤器负责处理用户的基本身份验证。

  • FormBasedAuthenticationFilter - 它对来自基于表单的登录技术的请求进行身份验证。

  • CsrfFilter - 它处理跨站点请求。

  • CorsFilter - 此过滤器处理跨源资源共享。

结论

Spring Security 框架针对的两个主要领域是身份验证和授权。在本文中,我们讨论了 Sprind Security 用于确保应用程序安全的各种技术和方法。大多数功能都是完全可定制的,可以根据我们的需要进行配置。


相关文章