DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。
DelegatingFilterProxy的使用方法,
首先在web.xml中配置:
<filter>
<filter-name>myFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
然后在Spring的配置文件中,配置具体的Filter类的实例。
<bean name="myFilter"
class="com.*.MyFilter"></bean>
在Spring中配置的bean的name要和web.xml中的<filter-name>一样
或者在DelegatingFilterProxy的filter配置中配置初始参数:targetBeanName,对应到Spring配置中的beanname
如果要保留Filter原有的init,destroy方法的调用,还需要配置初始化参数targetFilterLifecycle为true,该参数默认为false
参考文章:
springSecurity源码分析——DelegatingFilterProxy类的作用
分享到:
相关推荐
在Spring框架中,`DelegatingFilterProxy`是一个非常有用的工具,它允许我们将Spring的Bean作为Servlet过滤器(Filter)来使用。这个组件是Spring MVC的一部分,主要用于将Spring的AOP(面向切面编程)能力引入到Web...
Shiro可以通过Spring的DelegatingFilterProxy与Spring应用整合,这使得Shiro可以作为Spring的过滤器运行。在`pom.xml`中添加Shiro-Spring依赖,在`web.xml`中配置Shiro Filter,并在`applicationContext-shiro.xml`...
这些过滤器按顺序执行,每个都有特定的职责,如`DelegatingFilterProxy`、`FilterSecurityInterceptor`等。 接下来,我们来看看实例部分。在提供的资源中,`security_3.sql`包含了创建数据库表和初始化数据的SQL...
SpringSecurity 是一个强大的安全框架...理解其过滤器链的工作原理,以及如何在项目中正确配置和使用,是实现安全应用的关键。同时,随着版本的升级,了解版本间的差异也很重要,以便于更好地适应新的特性和最佳实践。
今天,我们将详细介绍 Spring Security Filter 的工作原理,了解它是如何工作的,以及如何配置和使用它。 Filter 的配置 在 Spring Security 中,Filter 是通过 XML 文件来配置的。下面是一个简单的示例: ```xml...
在web.xml文件中,我们需要配置Acegi Security提供的过滤器,如`DelegatingFilterProxy`,它会代理到Spring的Bean,即我们的`FilterSecurityInterceptor`。 在提供的“acegi-lib1”压缩包中,可能包含了Acegi ...
6. **源码分析**:对于深入理解Spring Security的工作原理,阅读源码是十分有帮助的。可以研究`AuthenticationManager`、`FilterSecurityInterceptor`、`AbstractAuthenticationProcessingFilter`等关键类的实现。 ...
首先,我们需要了解过滤器的基本工作原理。过滤器是实现了 javax.servlet.Filter 接口的类,通过在web.xml中配置,可以定义多个过滤链,每个过滤器根据其配置的顺序执行。当一个HTTP请求到来时,这些过滤器会按照...
- Spring Security的核心组件,如FilterSecurityInterceptor和DelegatingFilterProxy,它们如何协同工作保护应用程序的资源。 - 自定义过滤器的实现,扩展Spring Security的功能。 5. **URL保护**: - 如何通过...
5. **Spring MVC中的Filter**:在Spring MVC框架中,虽然Controller承担了大部分业务逻辑,但仍然可以使用Filter,甚至可以通过Spring的DelegatingFilterProxy来代理Spring Bean,方便地管理和使用Filter。...
Spring Security 是一个强大的和高度可定制的身份验证和访问控制框架,用于保护基于Java的应用程序。...通过阅读提供的资源,你可以深入理解Spring Security的工作原理,并在实际项目中运用它来构建安全的Web应用程序。
3. **过滤器链**:Spring Security的核心在于其过滤器链,包括`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`、`UsernamePasswordAuthenticationFilter`、`...
在3.0.5版本中,主要包括`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`、`LogoutFilter`、`UsernamePasswordAuthenticationFilter`等,它们分别负责委托给Spring ...
1. **集群Session支持**:Spring Session默认使用外置的Redis作为Session数据的存储介质,这样可以确保即使在服务重启或失败的情况下,用户的会话状态仍然保持不变。 2. **可插拔的存储层**:虽然默认使用Redis,但...
学习者应了解`DelegatingFilterProxy`、`ChannelProcessingFilter`、`RememberMeAuthenticationFilter`等关键过滤器的作用,以及如何定制自己的过滤器。 4. **角色与权限(Roles & Permissions)**:Spring ...
- 用户发起请求,请求经过一系列SpringSecurity的过滤器,如`DelegatingFilterProxy`、`FilterSecurityInterceptor`等。 - `FilterSecurityInterceptor`检查请求是否匹配任何保护规则,如果不匹配,则放行;匹配则...
这包括如`DelegatingFilterProxy`,它将请求委托给Spring Security的`FilterSecurityInterceptor`。 2. **AuthenticationManager**:这是Spring Security的核心组件,负责身份验证过程。它接收认证请求,并尝试通过...
- 例如,`DelegatingFilterProxy` 是Spring提供的一个Filter,用于代理Spring Bean,通常用于配置Spring Security的`FilterSecurityInterceptor`。 3. **实现用户权限过滤器** - 创建自定义Filter:你需要创建一...
- `DelegatingFilterProxy`: 用于代理Spring Security的Filter对象。 - `SecurityContextPersistenceFilter`: 保存和恢复用户的Security Context(安全上下文)。 - `UsernamePasswordAuthenticationFilter`: ...