org.springframework.web.filter中有一个特殊的类——DelegatingFilterProxy,该类其实并不能 说是一个过滤器,它的原型是FilterToBeanProxy,即将Filter作为spring的bean,由spring来管理。
配置DelegatingFilterProxy的常用方法如下所示:
<filter> <filter-name>testFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>testBean</param-value> </init-param> </filter> <filter-mapping> <filter-name>testFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
含义是有一个过滤器,它指向一个bean,这个bean在spring中的名字为testBean,testBean也必需实现javax.servlet.Filter。
其他可以通过web.xml传递的参数如下:
(1) contextAttribute,使用委派Bean的范围,其值必须从 org.springframework.context.ApplicationContext.WebApplicationContext中取得, 默认值是session;
(2) targetFilterLifecycle,是否调用Filter的init和destroy方法,默认为false。
所以DelegationgFilterProxy的全项配置信息如下:
<filter> <filter-name>testFilter</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <param-name>targetBeanName</param-name> <param-value>testBean</param-value> </init-param> <init-param> <param-name>contextAttribute</param-name> <param-value>session</param-value> </init-param> <init-param> <param-name>targetFilterLifecycle</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>testFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
相关推荐
在Spring MVC框架中,过滤器(Filter)是一个关键组件,用于在请求被处理之前或之后执行特定的操作。本文将深入探讨如何实现一个登录过滤器,该过滤器旨在拦截需要登录才能访问的页面,并确保用户已登录才能继续操作...
- `DelegatingFilterProxy`:Spring提供的Filter,用于代理Spring的Bean,例如Spring Security的Filter链。 - 编写自定义Filter:扩展`javax.servlet.Filter`类,实现`doFilter`方法,然后在`web.xml`中配置。 3....
实际上,还有一个隐藏层 DelegatingFilterProxy 代理了 springSecurityFilterChain 注入到最后整个 Servlet 过滤器链中。 在 FilterChainProxy 中, Filter 们按照一定的顺序被 SecurityBuilder 的实现来组装为 ...
在“Spring-mvc+mybatis+shiro学习demo”中,这三个框架被整合在一起,形成了一个完整的Web应用开发基础。Spring MVC作为控制器,负责接收HTTP请求,调用业务逻辑;MyBatis负责与数据库交互,处理数据的增删改查;...
在3.1.0.RC1中,这些过滤器如`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`等,构建了一条完整的安全链路。 4. **Authorization**:3.1.0.RC1版本引入了基于角色的访问...
默认的过滤器链包括了如`DelegatingFilterProxy`(用于代理Spring Security的FilterSecurityInterceptor)、`ChannelProcessingFilter`(处理HTTP与HTTPS切换)和`FilterInvocationSecurityMetadataSourceAdvisor`...
通过上述分析,我们可以看出`DelegatingFilterProxy`在Spring MVC应用中的重要性,它使得过滤器可以充分利用Spring框架的优势,提高了代码的可维护性和可扩展性。同时,结合提供的代码示例,我们可以更好地理解和...
在Spring MVC的配置中,需要确保Spring Security的过滤器优先级高于其他过滤器。 3. **结合MyBatis**:在MyBatis中创建UserMapper接口,用于处理用户相关的数据库操作,如查询用户信息、角色和权限。在Spring ...
主要包括`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`、`LogoutFilter`、`UsernamePasswordAuthenticationFilter`等,它们分别负责委托给Spring Security管理的安全...
在Spring MVC框架中,可以使用Spring的DelegatingFilterProxy来代理Spring的Bean,这样可以利用Spring的依赖注入和AOP特性。 9. **动态过滤** 通过编程方式动态地添加、删除过滤器,可以实现更加灵活的过滤策略。...
例如,`FilterSecurityInterceptor` 处理授权请求,而 `DelegatingFilterProxy` 用于配置 Spring 容器中的过滤器。 4. **会话管理**:框架提供了会话固定保护(Session Fixation Protection)和会话超时管理,防止...
例如,可以创建一个过滤器链,使用Spring Security的DelegatingFilterProxy来启动SecurityContextFilter,处理用户的会话和安全上下文。然后,通过配置Spring Security的http元素,启用注解支持,如`<http use-...
Spring Security的核心在于过滤器链,其中包含了一系列的过滤器,如`DelegatingFilterProxy`、`ChannelProcessingFilter`、`SecurityContextPersistenceFilter`等,它们共同协作,完成从HTTP请求到安全响应的转换。...
7. **Spring框架中的Filter**:在Spring MVC中,虽然可以使用传统的Servlet Filter,但Spring也提供了DelegatingFilterProxy,它可以用来代理Spring的Bean,这样过滤器也能享受到Spring的依赖注入。 通过分析和实践...
它提供HTTP安全拦截过滤器链,如`DelegatingFilterProxy`,可以与Spring的DispatcherServlet集成。 4. **spring-security-acl**:这个模块提供了细粒度访问控制,允许对对象级别的权限进行管理。例如,你可以控制...
- **Spring Filter**:Spring框架提供了多种过滤器,如`DelegatingFilterProxy`,可以代理到Spring的Bean,实现AOP切面过滤。 4. **Spring MVC中的Filter** - **Spring MVC与Filter**:Spring MVC是Spring框架的...
- 在web.xml中配置Shiro的Filter,如`DelegatingFilterProxy`代理`org.apache.shiro.web.filter.mgt.FilterChainResolverFilter`。 - 配置`shiro.ini`或Java配置类来设定Shiro的相关策略。 10. **数据库配置** -...
我们可以利用Spring的DelegatingFilterProxy来实现Spring Bean作为过滤器的功能。DelegatingFilterProxy是一个特殊的Servlet Filter,它将过滤器的工作委托给Spring容器管理的一个Bean。这样,我们可以在Spring配置...
每个过滤器都有特定的职责,如`DelegatingFilterProxy`用于委托给Spring Security的其他过滤器,`HttpServletRequestWrapperFilter`用于包装请求以增加安全性。 2. **身份验证(Authentication)**:当用户尝试访问...
5. **Spring MVC中的Filter**:在Spring MVC框架中,虽然Controller承担了大部分业务逻辑,但仍然可以使用Filter,甚至可以通过Spring的DelegatingFilterProxy来代理Spring Bean,方便地管理和使用Filter。...