`
mnieguomin
  • 浏览: 26748 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Spring Security--其他核心拦截器

 
阅读更多

1. HttpSessionContextIntegrationFilter

位于过滤器顶端,第一个起作用的过滤器。

用途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中,供Spring Security的其他部分使用。

用途二,在所有过滤器执行完毕后,清空SecurityContextHolder,因为SecurityContextHolder是基于ThreadLocal的,如果在操作完成后清空ThreadLocal,会受到服务器的线程池机制的影响。

 

2. LogoutFilter

只处理注销请求,默认为/j_spring_security_logout。

用途是在用户发送注销请求时,销毁用户session,清空SecurityContextHolder,

然后重定向到注销成功页面。可以与rememberMe之类的机制结合,在注销的同时清空用户cookie。

 

3. AuthenticationProcessingFilter

处理form登陆的过滤器,与form登陆有关的所有操作都是在此进行的。

默认情况下只处理/j_spring_security_check请求,这个请求应该是用户使用form登陆后的提交地址

此过滤器执行的基本操作时,通过用户名和密码判断用户是否有效,如果登录成功就跳转到成功页面

(可能是登陆之前访问的受保护页面,也可能是默认的成功页面),如果登录失败,就跳转到失败页面。

 

4. DefaultLoginPageGeneratingFilter

此过滤器用来生成一个默认的登录页面,默认的访问地址为/spring_security_login,

这个默认的登录页面虽然支持用户输入用户名,密码,也支持rememberMe功能,但是因为太难看了,

只能是在演示时做个样子,不可能直接用在实际项目中。

 

5. BasicProcessingFilter

此过滤器用于进行basic验证,功能与AuthenticationProcessingFilter类似,只是验证的方式不同。

 

6. SecurityContextHolderAwareRequestFilter

此过滤器用来包装客户的请求。目的是在原始请求的基础上,为后续程序提供一些额外的数据。比如getRemoteUser()时直接返回当前登陆的用户名之类的。

 

7. RememberMeProcessingFilter

此过滤器实现RememberMe功能,当用户cookie中存在rememberMe的标记,此过滤器会根据标记自动实现用户登陆,并创建SecurityContext,授予对应的权限。

 

8. AnonymousProcessingFilter

为了保证操作统一性,当用户没有登陆时,默认为用户分配匿名用户的权限。

 

9. ExceptionTranslationFilter

此过滤器的作用是处理中FilterSecurityInterceptor抛出的异常,然后将请求重定向到对应页面,或返回对应的响应错误代码

 

10. SessionFixationProtectionFilter

防御会话伪造攻击。有关防御会话伪造的详细信息

 

11. FilterSecurityInterceptor

用户的权限控制都包含在这个过滤器中。

功能一:如果用户尚未登陆,则抛出AuthenticationCredentialsNotFoundException“尚未认证异常”。

功能二:如果用户已登录,但是没有访问当前资源的权限,则抛出AccessDeniedException“拒绝访问异常”。

功能三:如果用户已登录,也具有访问当前资源的权限,则放行。

所有的过滤器都会实现SpringSecurityFilter安全过滤器。。。

 

image

分享到:
评论

相关推荐

    spring-security Jar包

    3. **过滤器链**:Spring Security 的核心是Filter Security Interceptor(过滤器安全拦截器)和Access Decision Manager(访问决策管理器)。过滤器链处理HTTP请求,进行身份验证和授权检查,而访问决策管理器根据...

    01-SpringSecurity-Demo.zip

    通过运行并分析这个Demo项目,你可以了解SpringSecurity如何拦截请求、进行身份验证和授权,以及如何自定义安全规则。这将帮助你深入理解SpringSecurity的工作原理,并能更好地应用到实际项目中去。 此外,配合博主...

    Spring security-包含官方文档

    3. **拦截器和过滤器链**:Spring Security 的核心是Filter Security Interceptor 和 Channel Security Interceptor。前者处理基于URL的安全控制,后者处理HTTP通道的安全性,如强制HTTPS。 4. **表达式语言**:...

    springsecurity所有jar包

    2. **spring-security-core**:这是Spring Security的基础模块,提供了安全核心服务,如安全性上下文、访问决策管理器、权限评估器等。它实现了基于角色的访问控制(RBAC)模型,处理用户、权限、角色等核心概念。 ...

    spring-security-core-3.1.0.RC1.jar

    3. **Filter Chain**:Spring Security通过一系列过滤器(Filter)实现请求的拦截和处理。在3.1.0.RC1中,这些过滤器如`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`等...

    spring-security-oauth2与spring-security-web 3.1.2 源码

    首先,`spring-security-web`是Spring Security的核心库,它提供了Web应用程序的基本安全功能,如HTTP安全过滤器链,登录页面处理,会话管理以及基于角色的访问控制(RBAC)。在`3.1.2`版本中,它包括了以下主要模块...

    spring-security-3.1.4

    这个zip包包含了Spring Security的核心库、文档、示例代码和其他必要的资源,便于开发者下载和学习。 Spring Security的主要功能包括: 1. **身份验证**:它提供了多种认证机制,如基于密码的认证、Remember Me...

    spring-security-core-2.0.5.RELEASE.src

    1. **FilterSecurityInterceptor**:这是Spring Security中的关键拦截器,负责处理请求的访问控制。它通过SecurityMetadataSource获取访问控制信息,并调用AccessDecisionManager进行决策。 2. **Expression-Based ...

    spring-security-3.0.5.RELEASE

    1. **过滤器链**:Spring Security的核心在于其过滤器链,它拦截HTTP请求并执行一系列安全检查。在3.0.5版本中,主要包括`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`...

    spring-security-4.0.3.RELEASE-全包

    1. **Filter Security Interceptor (FSI)**:它是Spring Security的核心组件之一,负责拦截HTTP请求,并根据配置的安全规则进行处理。FSI使用访问决策管理器(Access Decision Manager)和权限表达式处理...

    初识 Spring Security - v1.1.pdf

    - **Spring Security 定义好的核心Filter**:包括一系列内置过滤器,如`UsernamePasswordAuthenticationFilter`等。 ##### 10. **退出登录** - **概念**:提供了退出登录的功能,清除用户的认证状态。 ##### 11. ...

    spring-security-3.0.3 jar包( 含源码)

    - `FilterSecurityInterceptor`:AOP拦截器,负责进行访问控制,根据权限决定是否允许访问资源。 - `UserDetailsService`:获取用户详细信息的接口,通常与用户存储系统(如数据库或LDAP)集成。 - `...

    spring-security-3.0.5.RELEASE 官方下载

    3. **拦截器(Interceptors)**:Spring Security使用过滤器链(Filter Chain)来拦截和处理HTTP请求。这些过滤器执行身份验证、授权等安全任务。 4. **安全性配置(Security Configuration)**:基于XML或注解的...

    spring-security-2.0.3

    8. **集成Spring MVC**:在Spring Security 2.0.3中,它与Spring MVC的集成是关键,通过拦截器和安全注解来保护控制器方法。 9. **XML配置**:这个版本主要依赖XML配置,理解如何在`security-config.xml`中定义安全...

    Spring security oauth源码

    2. **Filter Security Interceptor**:Spring Security的核心组件,用于拦截HTTP请求,根据权限控制策略决定是否允许访问。 3. **OAuth2 endpoints**:如`/oauth/authorize`、`/oauth/token`等,用于处理OAuth相关的...

    spring-security-2.0.6. API和 jar包

    3. **Filter Chain**:Spring Security的核心在于其过滤器链,它在HTTP请求处理之前拦截请求并执行安全检查。`FilterSecurityInterceptor`是这个链上的关键组件,负责应用访问控制策略。 4. **UserDetailsService**...

    spring-security-4.2.3.RELEASE

    3. **过滤器链**:Spring Security 的核心是其过滤器链,它拦截 HTTP 请求并执行相应的安全逻辑。例如,`FilterSecurityInterceptor` 处理授权请求,而 `DelegatingFilterProxy` 用于配置 Spring 容器中的过滤器。 ...

    spring spring security2.5 jar

    2. **配置文件**:在Spring的XML配置文件中,需要添加Spring Security的相关配置,例如定义安全拦截器、认证提供者、访问决策策略等。 3. **代码集成**:在业务代码中,可以通过`@Secured`注解来标记需要权限控制的...

    spring-security-3.1.0.RELEASE

    1. **XML配置**:3.1.0.RELEASE版本中,Spring Security的配置主要通过XML文件完成,包括定义安全拦截规则、设置认证和授权策略等。 2. **注解驱动**:除了XML,3.1.0.RELEASE也支持使用Java配置和注解,使得配置...

    spring-security-3.2.9和spring-framework-3.2.4的jar包和源码

    Spring Security和Spring Framework是Java开发中的两个核心组件,它们在构建安全、可扩展的企业级应用程序中扮演着重要角色。这两个库都是Spring生态系统的一部分,由Pivotal Software公司维护。 Spring Framework...

Global site tag (gtag.js) - Google Analytics