Spring Security学习
2016-07-19 09:08
190 查看
最近要用到Spring security oauth2,基于Spring Security,但是我连Spring Security都没有用过啊,于是先开始学它。
入口是一个filter。
正如网上很多人说的那样,这个过滤器只是一个代理,他有一个targetBeanName属性,在过滤器doFilter方法中,从spring容器找到了名为targetBeanName的bean,所以真正使用的是spring容器中的名为targetBeanName的过滤器。targetBeanName默认就是我们在web.xml里面配置的,即springSecurityFilterChain。
然后spring容器需要有这个bean才行啊,我们知道spring容器是通过一个listener启动的。
org.springframework.web.context.ContextLoaderListener 因为listener的加载比filter早,所以需要用到bean的时候已经存在。
当spring读取配置文件的时候,如果遇到http元素,就会创建springSecurityFilterChain过滤器。
可以看SecurityNamespaceHandler这个类。
parsers.put(Elements.HTTP, new HttpSecurityBeanDefinitionParser());这句话就创建了一个HttpSecurityBeanDefinitionParser解析器,然后这个解析器的parse方法就注册了springSecurityFilterChain。
之后就创建了一大堆过滤器用来拦截请求什么的。。。
一些学习资料 http://www.mossle.com/docs/springsecurity3/html/springsecurity.html http://www.mossle.com/docs/auth/html/ch101-filters.html http://www.cnblogs.com/davidwang456/p/4521955.html
入口是一个filter。
<filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
正如网上很多人说的那样,这个过滤器只是一个代理,他有一个targetBeanName属性,在过滤器doFilter方法中,从spring容器找到了名为targetBeanName的bean,所以真正使用的是spring容器中的名为targetBeanName的过滤器。targetBeanName默认就是我们在web.xml里面配置的,即springSecurityFilterChain。
然后spring容器需要有这个bean才行啊,我们知道spring容器是通过一个listener启动的。
org.springframework.web.context.ContextLoaderListener 因为listener的加载比filter早,所以需要用到bean的时候已经存在。
当spring读取配置文件的时候,如果遇到http元素,就会创建springSecurityFilterChain过滤器。
可以看SecurityNamespaceHandler这个类。
parsers.put(Elements.HTTP, new HttpSecurityBeanDefinitionParser());这句话就创建了一个HttpSecurityBeanDefinitionParser解析器,然后这个解析器的parse方法就注册了springSecurityFilterChain。
之后就创建了一大堆过滤器用来拦截请求什么的。。。
一些学习资料 http://www.mossle.com/docs/springsecurity3/html/springsecurity.html http://www.mossle.com/docs/auth/html/ch101-filters.html http://www.cnblogs.com/davidwang456/p/4521955.html
相关文章推荐
- java为什么要实例化?实例化的对象和引用...
- 【转-整理】Struts2中package,action,result,method配置详解
- Java中BitSet的实现
- 修改EAS指定的JAVA_HOME
- java线程同步辅助类的使用CountDownLatch
- spring源码分析之定时任务概述
- Hadoop--04--使用java api操作
- Java中的IO流系统详解
- Thinking in Java 第16章 数组
- java泛型(转)
- 第1条:使用静态工厂的方法来代替构造器
- java守护线程与非守护线程(转)
- JAVA中HashMap和Hashtable区别(转)
- java 垃圾回收机制(转)
- Spring系列之IOC
- Java内存结构
- Java日期时间(Date/Time):DateFormat格式代码
- static(静态)关键字的特点和用法
- Java中IO流常见的几种流
- Java通信知识点汇集