spring security web鉴权
时间: 2024-08-16 10:01:18 浏览: 45
Spring Cloud Gateway 整合 Spring Security 统一登录认证鉴权
5星 · 资源好评率100%
Spring Security Web是Spring框架的一个模块,用于提供全面的Web应用程序安全功能,包括身份验证(Authentication)、授权(Authorization)以及安全性策略。Web鉴权主要是指当用户尝试访问受保护的资源(如REST API端点或网页)时,系统会检查其是否具备访问权限。
在Spring Security中,Web鉴权过程通常分为以下几个步骤:
1. **认证(Authentication)**:
- 用户登录:通过表单提交用户名和密码,或者使用JWT等其他方式进行。
- 验证:Spring Security的`AuthenticationProvider`负责验证提供的凭证(用户名和密码)是否有效。
- 创建Principal:如果验证成功,会创建一个代表用户身份的`Principal`对象,存储在`SecurityContext`中。
2. **授权(Authorization)**:
- 审查:`AccessDecisionManager`负责判断`Principal`是否有足够的权限访问某个资源。
- 角色检查:通过`RoleHierarchy`或者自定义的`MethodSecurityExpressionHandler`来确定用户的角色和权限。
3. **认证拦截器(Authentication Filter)**:
- `HttpSecurity`配置中的`formLogin()`、`httpBasic()`或`http()`.authorizeRequests()`方法设置了过滤器链,使得只有经过认证的用户才能进入受保护的URL。
4. **异常处理**:
如果任何环节出现问题,Spring Security提供了丰富的异常处理机制,比如未授权Exception (`AccessDeniedException`)会被映射到指定的错误页面。
5. **记住我功能**(Remember Me):
通过Cookie或Token持久保存用户的登录状态,允许他们在整个会话期间无需再次输入凭据。
阅读全文