`
wx1568905209
  • 浏览: 26219 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

spring security 过滤器链

 
阅读更多

640?wx_fmt=png

SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的各个进行说明:

WebAsyncManagerIntegrationFilter:将 Security 上下文与 Spring Web 中用于处理异步请求映射的 WebAsyncManager 进行集成。

SecurityContextPersistenceFilter:在每次请求处理之前将该请求相关的安全上下文信息加载到 SecurityContextHolder 中,然后在该次请求处理完成之后,将 SecurityContextHolder 中关于这次请求的信息存储到一个“仓储”中,然后将 SecurityContextHolder 中的信息清除,例如在Session中维护一个用户的安全信息就是这个过滤器处理的。

HeaderWriterFilter:用于将头信息加入响应中。

CsrfFilter:用于处理跨站请求伪造。

LogoutFilter:用于处理退出登录。

UsernamePasswordAuthenticationFilter:用于处理基于表单的登录请求,从表单中获取用户名和密码。默认情况下处理来自 /login 的请求。从表单中获取用户名和密码时,默认使用的表单 name 值为 username 和 password,这两个值可以通过设置这个过滤器的usernameParameter 和 passwordParameter 两个参数的值进行修改。

DefaultLoginPageGeneratingFilter:如果没有配置登录页面,那系统初始化时就会配置这个过滤器,并且用于在需要进行登录时生成一个登录表单页面。

BasicAuthenticationFilter:检测和处理 http basic 认证。

RequestCacheAwareFilter:用来处理请求的缓存。

SecurityContextHolderAwareRequestFilter:主要是包装请求对象request。

AnonymousAuthenticationFilter:检测 SecurityContextHolder 中是否存在 Authentication 对象,如果不存在为其提供一个匿名 Authentication。

SessionManagementFilter:管理 session 的过滤器

ExceptionTranslationFilter:处理 AccessDeniedException 和 AuthenticationException 异常。

FilterSecurityInterceptor:可以看做过滤器链的出口。

RememberMeAuthenticationFilter:当用户没有登录而直接访问资源时, 从 cookie 里找出用户的信息, 如果 Spring Security 能够识别出用户提供的remember me cookie, 用户将不必填写用户名和密码, 而是直接登录进入系统,该过滤器默认不开启。
--------------------- 
 

 

转载于:https://my.oschina.net/u/2277392/blog/3082390

分享到:
评论

相关推荐

    全面解析Spring Security 过滤器链的机制和特性

    Spring Security 过滤器链机制和特性详解 Spring Security 过滤器链是 Spring Security 框架中的一种核心机制,负责处理 HTTP 请求的安全验证和授权。今天,我们将深入探讨 Spring Security 过滤器链的机制和特性,...

    spring+security+11种过滤器介绍.doc

    1. HttpSessionContextIntegrationFilter:这是Spring Security过滤器链的第一个过滤器。它的主要职责是确保每个线程都有一个SecurityContext实例,这个实例存储了当前用户的认证信息。当请求到达时,它检查session...

    Spring Security3 Demo

    这些过滤器包括`DelegatingFilterProxy`(用于配置Spring Security过滤器链)、`HttpServletRequestWrapper`(用于修改请求)和`FilterSecurityInterceptor`(执行访问决策)等。 2. **认证**: 用户尝试访问受保护...

    spring security 4 小例子带自定义过滤器

    默认的过滤器链包括了如`DelegatingFilterProxy`(用于代理Spring Security的FilterSecurityInterceptor)、`ChannelProcessingFilter`(处理HTTP与HTTPS切换)和`FilterInvocationSecurityMetadataSourceAdvisor`...

    spring security3.1高级详细开发指南

    此外,还需要配置Spring Security过滤器链,使其指向自定义的过滤器和决策管理器,以确保系统能够正确处理认证和授权流程。 通过这种方式,你可以构建出一个高度定制的安全管理系统,既能灵活地处理用户和权限的...

    Spring Security3 简单demo

    - `web.xml`:可能包含了Spring Security过滤器链的配置,以便在Web应用启动时加载安全配置。 - `pom.xml`:如果项目是Maven项目,那么这里会定义项目的依赖,包括Spring Security库。 - 可能还有一些其他的Java源...

    框架说明-springsecurity

    2. **Spring Security 过滤器链** - **DelegatingFilterProxy**:这是在`web.xml`中配置的代理过滤器,它会委托给Spring容器中的实际Spring Security过滤器。 - **SecurityContextPersistenceFilter**:该过滤器...

    Spring Security3.1最新配置实例

    6. **整合Struts2**:将Spring Security的拦截器与Struts2的Action映射结合,确保Spring Security过滤器链能够正确工作。 7. **测试与调试**:编写测试用例检查安全功能是否正常工作,如尝试访问受限资源时是否触发...

    HAP框架-SpringSecurity入门手册.docx

    - 在`web.xml`中配置Spring Security过滤器链,这是Spring Security启动和执行安全检查的入口点。 - 配置Spring Security的核心安全配置类,定义用户存储、权限控制和认证策略。 - 定义访问控制规则,例如,使用`@...

    Spring Security 资料合集

    - Spring Security 的核心是过滤器链,它包含了一系列安全过滤器,如`FilterSecurityInterceptor`和`AuthenticationProcessingFilter`。这些过滤器在请求处理前进行拦截,执行认证和授权操作。 3. **安全性配置**...

    springsecurity原理流程图.pdf

    Spring Security的过滤器链是一种职责链设计模式,允许用户按照特定顺序添加多个过滤器来处理请求。 b. 除了AbstractAuthenticationProcessingFilter之外,过滤器链中还包括诸如ExceptionTranslationFilter、...

    Spring Security 文档

    3. **全面数据库存储和自定义过滤器**:用户、角色、权限和资源都存于数据库中,并且自定义过滤器替代默认的`FilterSecurityInterceptor`。同时,需要实现`AccessDecisionManager`、`...

    关于ip的过滤器 spring security例子

    在Spring Security的配置类中,我们可以通过`http`方法定义过滤器链,并使用`addFilterBefore`或`addFilterAfter`方法添加自定义过滤器。例如: ```java @Configuration @EnableWebSecurity public class Security...

    java学习之SpringSecurity配置了登录链接无权限

    我们在使用SpringSecurity作为后台权限框架的时候,框架给我们提供了配置登录请求的接口,供我们配置登录链接,当我们配置了登录链接地址后,前端访问登陆请求的时候显示无权限。 异常分析 由于SpringSecurity的...

    狂神Spring Security静态资源

    2. **自定义过滤器链**:如果需要对静态资源进行特定的访问控制,比如只允许登录用户访问,可以创建自定义过滤器并插入到过滤器链中。例如,可以创建一个`FilterRegistrationBean`来注册一个新的过滤器,并指定其...

    SpringSecurity笔记,编程不良人笔记

    - **Filter Chain**: SpringSecurity通过一系列过滤器实现其安全功能,这些过滤器构成了Filter Chain。每个过滤器负责特定的安全任务,如认证、授权等。 - **Authentication**: 表示用户的身份信息,包括用户名、...

    spring security 官方文档

    3. **过滤器链(Filter Chain)**:Spring Security的核心是其过滤器链,它在HTTP请求被处理之前进行拦截。过滤器链包含多个预定义的过滤器,如`HttpServletRequestWrapperFilter`、`AnonymousAuthenticationFilter`...

    springboot springsecurity动态权限控制

    - 如果默认的过滤器不能满足需求,可以编写自定义过滤器,插入到Spring Security的过滤器链中,实现更复杂的逻辑,比如基于URL、方法或自定义条件的权限控制。 5. **JWT令牌**: - 为了支持API的无状态认证,可以...

    springSecurity 实现传参

    7. **自定义过滤器**:如果你的逻辑更复杂,比如需要在登录成功后执行特定操作,可以创建自定义过滤器并将其插入到Spring Security的过滤器链中。 通过以上步骤,你可以实现Spring Security的登录验证和参数传递...

Global site tag (gtag.js) - Google Analytics