Spring DelegatingFilterProxy 过滤器 的原理及运用
DelegatingFilterProxy的原理及使用
DelegatingFilterProxy就是一个对于servlet filter的代理,用这个类的好处主要是通过Spring容器来管理servlet filter的生命周期,还有就是如果filter中需要一些Spring容器的实例,可以通过spring直接注入,另外读取一些配置文件这些便利的操作都可以通过Spring来配置实现。
DelegatingFilterProxy的使用方法,
首先在web.xml中配置:
如果要保留Filter原有的init,destroy方法的调用,还需要配置初始化参数targetFilterLifecycle为true,该参数默认为false
<filter><filter-name>shiroFilter</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class><init-param><param-name>targetFilterLifecycle</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>shiroFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
然后在Spring的配置文件中,配置具体的Filter类的实例(此处以Shiro为例)。
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"><!-- Shiro的核心安全接口,这个属性是必须的 --><property name="securityManager" ref="securityManager"></property><!-- 要求登录时的链接(登录页面地址),非必须的属性,默认会自动寻找Web工程根目录下的"/login.jsp"页面 --><property name="loginUrl" value="/login"></property><property name="filters"><map><entry key="anyRole" value-ref="anyRoleAuthorizationFilter" /></map></property><!-- 登录成功后要跳转的连接 --><!-- <property name="successUrl" value="/main" ></property> --><!-- 用户访问未对其授权的资源时,所显示的连接 --><property name="unauthorizedUrl" value="/noAuthority"></property><property name="filterChainDefinitionMap" ref="filterChainFactoryBean"></property></bean>
在Spring中配置的bean的name要和web.xml中的<filter-name>一样
或者在DelegatingFilterProxy的filter配置中配置初始参数:targetBeanName,对应到Spring配置中的beanname
<filter><filter-name>DelegatingFilterProxy</filter-name><filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class><init-param><param-name>ignoreUrls</param-name><param-value>/caClient.jsp,/403.jsp,/login.html*,/j_spring_security_check,/accounts/**,/secure/logout,/js/**,/app/**,/images/**,/icons/**,/lib/**,/resource/**,/secure/changepassword</param-value></init-param> <init-param><param-name>targetBeanName</param-name><param-value>commonWebFilter</param-value></init-param><init-param><param-name>targetFilterLifecycle</param-name><param-value>true</param-value></init-param></filter><filter-mapping><filter-name>DelegatingFilterProxy</filter-name><url-pattern>/*</url-pattern></filter-mapping>
applicationContext.xml
<bean id="commonWebFilter" class="com.wonders.LoginFilter"/>
转载于:https://www.cnblogs.com/gaomanito/p/10459967.html
Spring DelegatingFilterProxy 过滤器 的原理及运用相关推荐
- 安全认证框架Shiro (二)- shiro过滤器工作原理
安全认证框架Shiro (二)- shiro过滤器工作原理 安全认证框架Shiro 二- shiro过滤器工作原理 第一前言 第二ShiroFilterFactoryBean入口 第三请求到来解析过程 ...
- Filter过滤器工作原理
Filter过滤器工作原理 Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术之一,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Js ...
- spring security加载原理(基于springboot)
一.基本架构 二.自动配置原理 依据 Spring Boot 自动配置原理,其会自动加载spring-boot-autoconfigure.jar中/META-INF/spring.factories ...
- 3.了解Spring Boot2自动配置原理
了解Spring Boot2自动配置原理 1.SpringBoot特点 1.1.依赖管理 1.父项目做依赖管理 依赖管理 <parent><groupId>org.spring ...
- Spring MVC过滤器-HiddenHttpMethodFilter
随时随地技术实战干货,获取项目源码.学习资料,请关注源代码社区公众号(ydmsq666) from:Spring MVC过滤器-HiddenHttpMethodFilter_Blake Luo-CSD ...
- Java Servlet中Filter过滤器的原理以及使用方式
详细介绍了Java Web Servlet中的Filter过滤器的原理以及常见用法. 文章目录 1 Filter接口 1.1 过滤器的生命周期 1.2 doFilter过滤方法 2 Filter的使用 ...
- 算法:详解布隆过滤器的原理、使用场景和注意事项@知乎.Young Chen
算法:详解布隆过滤器的原理.使用场景和注意事项@知乎.Young Chen 什么是布隆过滤器 本质上布隆过滤器是一种数据结构,比较巧妙的概率型数据结构(probabilistic data struc ...
- Spring Security过滤器就该这么配置!
大家好,我是推干货的DD! 今早看到小胖哥更新干货了,关注Spring Security的小伙伴,不可以错过这篇哦! 以前胖哥带大家用Spring Security过滤器实现了手机验证码认证,今天我们 ...
- 详解布隆过滤器的原理、使用场景和注意事项
在进入正文之前,之前看到的有句话我觉得说得很好: Data structures are nothing different. They are like the bookshelves of you ...
- Spring Boot自动配置原理、实战
Spring Boot自动配置原理 Spring Boot的自动配置注解是@EnableAutoConfiguration, 从上面的@Import的类可以找到下面自动加载自动配置的映射. org.s ...
最新文章
- Python处理正则表达式超时的办法
- STM32开发 -- cannot open source input file absacc.h 解决方法
- linux下多种锁的比较
- 常用正则表达式大全——包括校验数字、字符、一些特殊的需求
- SQLServer常用的字符串函数梳理
- html post 发送两次,jQuery Ajax发送两次第二次提交,发送三次三次
- 二进制十六进制相互转换
- 1 常用Windows命令大全
- 51nod 1256 扩展欧几里得
- 数仓系列 | Flink 窗口的应用与实现
- 学术壁报模板_中华医学会核医学分会2020年学术年会征文通知
- StringUtil工具类之去除所有的空白字符
- 基于springboot网上书城系统
- 魔兽世界忘记账号角色服务器,魔兽世界里我知道了他的游戏角色名字怎样查到他的战网通行证...
- Arcgis拓扑检查必须相互覆盖操作步骤
- 计算机二级office查分数,3月份office计算机二级内网查分90,写下一点经验给后来人...
- Linux Mint 笔记本亮度调节总结
- AI研习丨专题:面向共享出行的群体智能技术与应用
- Office 2010 解压后无法安装(安装程序包的语言不受系统支持)释疑
- java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part7(Redis常见使用(部署)方式:单机模式、主从模式、哨兵模式、集群模式)~整起