介绍
在本文档中,我介绍了使用Spring Security开发的身份验证系统,称为“ BookCatalog”。系统的目的是允许常规对应用程序保护和访问功能进行身份验证和访问功能。
Github
功能
身份验证系统具有以下功能:
-
用户的记录:使用可以通过提供常规,电子邮件和密码名称来注册。
-
身份验证:注册用途可以使用您的电子邮件和密码登录以访问受保护的功能。
-
令牌jwt:成功身份验证后,系统提供了一个令牌JWT(JSON Web令牌),其中包含其他用户信息信息。 >
-
访问受保护资源的访问:令牌JWT用于对服务器上受保护资源的后续请求进行身份验证。
使用春季安全的动机
Spring Security是一个强大的弹簧框架,旨在在公司应用程序中提供安全性。我们选择使用Spring Security实施身份验证系统是基于以下原因:
-
集成: Spring Security与Spring生态系统高度集成,这有助于与应用程序的其他组件集成£O。
-
灵活配置:弹簧安全提供了灵活的配置,可以使用不同的机制来个性化保险规则和身份验证规则。
-
oauth2流:弹簧安全支持完整的OAuth2身份验证流,允许与外部身份提供者集成。
-
更新的安全性: Spring Security是一个完善的库,经常更新以应对新的安全威胁。
详细的登录过程
身份验证系统中的登录过程由以下步骤组成:
-
前端的身份验证:享受将您的凭据(电子邮件和密码)插入Fronte,并将请求从登录到服务器发送到服务器。
<。 < /li> -
front和发送请求以登录信息(资源层)
- 发送服务层的申请,我们使用个性化的UserDetailservice来传输和恢复数据库中的信息
- 在存储库中实际上是为了通过JPA恢复数据库用户
- 成功申请后,令牌由Spring Security 提供
-
服务器上的身份验证:服务器接收登录请求,并使用Spring Security Koud0来验证用户。它使用个性化的
UserDetailsService
根据提供的电子邮件恢复数据库的用户信息(例如电子邮件,密码和权限)。 -
令牌JWT生成:如果用户的凭据是破坏者,则服务器使用
JwtTokenEnhancer
生成令牌JWT。此类负责将其他信息添加到Token JWT,例如用户的名字和ID。 -
对前端的响应:服务器在答案正文中使用JWT令牌响应登录请求。 Frontand和在将来的请求中安全地存储令牌(例如,在cookie中)。
-
访问受保护资源的访问:在以后的请求中,使用“持有人”方案,使用“持有人”方案,在请求的“授权”中包括JWT令牌。服务器检查令牌的有效性,并在身份验证成功的情况下允许访问受保护的资源。
包括£o
使用Spring Security实施的身份验证系统为“ BookCatalog”应用程序提供了强大的安全层。在支持OAuth2流量和JWT代币的产生,通常可以在应用程序中安全地验证自己并访问受保护的资源。
Spring Security提供了灵活的配置,并与Spring生态系统高度集成,这是在公司应用中实施安全资源的理想选择。有了它,我们保证对常规数据的充分保护以及访问访问的访问权。