(1)Spring Security 的主要作用:
一、认证(Authentication)
确认用户的当前身份。例如,在用户登录时,检查用户名和密码是否匹配,或者验证其他身份凭证,确保只有合法用户能够访问系统资源。
二、授权(Authorization)
根据用户身份角色或者权限来决定用户能访问哪些资源,限制用户的访问权限。
三、防范安全威胁
防止请求伪造,会话固定攻击等,保证系统安全稳定运行。
(2)在若依框架内结合业务具体实现:
一、登录流程中的认证(后端)
1.认证过滤器
-
在若依框架中,Spring Security 的认证流程通常由一系列过滤器组成。其中,
UsernamePasswordAuthenticationFilter
是用于处理用户名和密码登录的过滤器。 -
当请求到达这个过滤器时,它会提取用户提交的用户名和密码,并创建一个未认证的
UsernamePasswordAuthenticationToken
对象。
2.用户信息查询
-
接着,这个未认证的令牌会被传递给业务处理的实现类。这个类会根据用户名从数据库中查询用户信息,并且进行用户信息的多方校验
二、登录后的授权(Authorization)
1.权限信息存储与获取
-
当用户登录成功后,若依框架会将用户的权限信息存储在
UserDetails
对象中。这个对象包含了用户的身份信息、权限列表等,进行权限的分配。
2.权限验证与访问控制
- 在若依框架的控制器方法中,可以使用
@PreAuthorize
注解进行权限验证。例如:
三、登录过程中的安全防范(还在研究中)
CSRF 令牌生成与验证
-
在若依框架的登录页面,通常会生成一个 CSRF 令牌,并将其包含在登录表单中
会话管理策略
-
在若依框架的安全配置类中,会设置会话管理策略来防止会话固定攻击。