Spring Security学习

来源:互联网 发布:人工智能的好处英文 编辑:程序博客网 时间:2024/05/22 00:44
最近要用到Spring security oauth2,基于Spring Security,但是我连Spring Security都没有用过啊,于是先开始学它。入口是一个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.htmlhttp://www.mossle.com/docs/auth/html/ch101-filters.htmlhttp://www.cnblogs.com/davidwang456/p/4521955.html
0 0
原创粉丝点击