• Spring Security常见过滤器


    Spring Security常见过滤器

    这里主要介绍 SpringSecurity 常见的过滤器的作用,方便以后查阅!!!

    一、简介

    Spring Security是一个功能强大且高度可定制的,主要负责为Java程序提供声明式的 身份验证和访问控制 的安全框架。其前身是Acegi Security,后来被收纳为Spring的一个子项目,并更名为了Spring Security。

    Spring Security的底层主要是基于 Spring AOP 和 Servlet 过滤器 来实现安全控制,它提供了全面的安全解决方案,同时授权粒度可以在 Web请求级和方法调用级 来处理身份确认和授权。

    二、常见过滤器

    1、WebAsyncManagerIntegrationFilter

    org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter
    其主要用于集成 SecurityContext到 Spring异步执行机制中的 WebAsyncManager。

    2、SecurityContextPersistenceFilter

    org.springframework.security.web.context.SecurityContextPersistenceFilter
    其主要是使用 SecurityContextRepository在 session中保存或更新一个SecurityContext,并将 SecurityContext给以后的过滤器使用,来为后续 filter建立所需的上下文。
    SecurityContext中存储了当前用户的认证以及权限信息。

    3、HeaderWriterFilter

    org.springframework.security.web.header.HeaderWriterFilter
    其主要是向请求的 Header中添加相应的信息,可在 http标签内部使用 security:headers来控制。

    4、CsrfFilter

    org.springframework.security.web.csrf.CsrfFilter
    csrf又称跨域请求伪造,SpringSecurity会对所有 post请求验证是否包含系统生成的 csrf的 token信息,
    如果不包含,则报错。起到防止csrf攻击的效果。

    5、LogoutFilter

    org.springframework.security.web.authentication.logout.LogoutFilter
    其主要用于实现用户退出,清除认证信息。默认匹配 URL为 /logout的请求。

    6、UsernamePasswordAuthenticationFilter

    org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter
    其主要用于认证操作,默认匹配URL为 /login且必须为POST请求。

    7、DefaultLoginPageGeneratingFilter

    org.springframework.security.web.authentication.ui.DefaultLoginPageGeneratingFilter
    如果没有在配置文件中指定认证页面,则由该过滤器生成一个默认认证页面。

    8、DefaultLogoutPageGeneratingFilter

    org.springframework.security.web.authentication.ui.DefaultLogoutPageGeneratingFilter
    由此过滤器可以生产一个默认的退出登录页面

    9、BasicAuthenticationFilter

    org.springframework.security.web.authentication.www.BasicAuthenticationFilter
    此过滤器会自动解析 HTTP请求中头部名字为 Authentication,且以 Basic开头的头信息。

    10、RequestCacheAwareFilter

    org.springframework.security.web.savedrequest.RequestCacheAwareFilter
    通过HttpSessionRequestCache内部维护了一个 RequestCache,用于缓存 HttpServletRequest。

    11、SecurityContextHolderAwareRequestFilter

    org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter
    针对 ServletRequest进行了一次包装,使得 request具有更加丰富的 API。

    12、AnonymousAuthenticationFilter

    org.springframework.security.web.authentication.AnonymousAuthenticationFilter
    当 SecurityContextHolder中认证信息为空,则会创建一个匿名用户存入到 SecurityContextHolder中。
    Spring Security为了兼容未登录的访问,也走了一套认证流程,只不过是一个匿名的身份。

    13、SessionManagementFilter

    org.springframework.security.web.session.SessionManagementFilter
    其主要用于限制同一用户开启多个会话的数量。

    14、ExceptionTranslationFilter

    org.springframework.security.web.access.ExceptionTranslationFilter
    异常转换过滤器位于整个 springSecurityFilterChain的后方,用来转换整个链路中出现的异常。ExceptionTranslationFilter过滤器会拦截处理 AccessDeniedException和 AuthenticationException并添加到HTTP响应中。

    15、FilterSecurityInterceptor

    org.springframework.security.web.access.intercept.FilterSecurityInterceptor
    获取所配置资源访问的授权信息,根据 SecurityContextHolder中存储的用户信息来决定其是否有权
    限。

    关注林哥,持续更新哦!!!★,°:.☆( ̄▽ ̄)/$:.°★ 。

  • 相关阅读:
    【无标题】
    C语言每日一题(10) 回形矩阵
    LeetCode笔记:Weekly Contest 322
    (九)笔记.net学习之委托和事件、多播委托、观察者模式
    LQ0209 颠倒的价牌【枚举+进制】
    MySQL 崩溃恢复过程分析
    95后阿里P7晒出工资单:真的是狠狠扎心了...
    linux expect if判断
    第三章 栈和队列
    Linux | 1.Linux环境与版本
  • 原文地址:https://blog.csdn.net/qq_45912025/article/details/133035476