Spring_Security_3.0.1中文参考文档 PARTIII.web应用安全

原创 2015年11月19日 11:14:06

Part III.web应用安全

Chapter 7.安全过滤器链

Spring Security维护了一个过滤器链,每个过滤器拥有特定的功能,过滤器需要服务也会对应添加和删除。过滤器的次序是非常重要的,它们之间都有依赖关系。如果你已经使用了命名空间配置,过滤器会自动帮你配置, 你不需要定义任何Spring Bean,但是有时候你需要完全控制Spring过滤器链, 因为你使用了命名空间没有提供的特性,或者你需要使用你自己自定义的类。

7.1 DelegatingFilterProxy

spring的DelegatingFilterProxy提供了在web.xml和application context之间的联系。

<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>
7.2 FilterChainProxy

现在应该清楚了,你可以声明每个Spring Security过滤器bean,你在application context中需要的。把一个
DelegatingFilterProxy入口添加到web.xml, 确认它们的次序是正确的。 这是一种繁琐的方式,会让web.xml显得十
分杂乱,如果我们配置了太多过滤器的话。我们最好添加一个单独的入口,在web.xml中,然后在application
context中处理实体, 管理我们的web安全bean。这就是FilterChainProxy所做的事情。它使用
DelegatingFilterProxy (就像上面例子中那样),但是对应的class是org.springframework.security.web.
FilterChainProxy。

当我们了解如何使用命名控制配置构建web安全。我们使用一个DelegatingFilterProxy,它的名字
是“springSecurityFilterChain”。你应该现在可以看到FilterChainProxy的名字,它是由命名空间创建的。

7.2.1 绕过过滤器链

通过命名空间,你可以使用filters = "none",来提供一个过滤器bean列表。这会朝向请求模式,使用安全过滤器链
整体。注意任何匹配这个模式的路径不会有任何授权或校验的服务起作用,它们是可以自由访问的。
7.3 过滤器顺序

定义在web.xml里的过滤器的顺序是非常重要的。不论你实际使用的是哪个过滤器,<filter-mapping>的顺序应该像
下面这样:
1. ChannelProcessingFilter,因为它可能需要重定向到其他协议。
2. ConcurrentSessionFilter,因为它不使用SecurityContextHolder功能,但是需要更新SessionRegistry 来从主体中
放映正在进行的请求。
3. SecurityContextPersistenceFilter,这样SecurityContext可以在web请求的开始阶段通过SecurityContextHolder

建立,然后SecurityContext的任何修改都会在web请求结束的时候(为下一个web请求做准备)复制到
HttpSession中。
4. 验证执行机制 - UsernamePasswordAuthenticationFilter, CasAuthenticationFilter, BasicAuthenticationFilter 等等
- 这样SecurityContextHolder 可以被修改,并包含一个合法的 Authentication 请求标志。
5. SecurityContextHolderAwareRequestFilter,如果,你使用它,把一个Spring Security提醒
HttpServletRequestWrapper安装到你的servlet容器里。
6. RememberMeAuthenticationFilter,这样如果之前的验证执行机制没有更新SecurityContextHolder,这个请求
提供了一个可以使用的remember-me服务的cookie,一个对应的已保存的Authentication对象会被创建
出来。
7. AnonymousAuthenticationFilter,这样如果之前的验证执行机制没有更新SecurityContextHolder,会创建一个
匿名Authentication对象。
8. ExceptionTranslationFilter,用来捕捉 Spring Security异常,这样,可能返回一个HTTP错误响应,或者执
行一个对应的AuthenticationEntryPoint。
9. FilterSecurityInterceptor,保护web URI。

版权声明:本文为博主原创文章,未经博主允许不得转载。

Word批量设置论文参考文献标注以及选中所有数字

原理:通配符为[],在设置文献上标时,由于[]本身为通配符,故需要在前面加上反义字符\,注意不是/,两者不可混淆。 1.论文中的所有参考文献编号批量上标化: 用Word打开论文后,按下Ctrl+H,...
  • sax_157001
  • sax_157001
  • 2016年05月17日 10:36
  • 1472

Spring 4.x官方参考文档中文版——第六部分 Web技术

基于Spring 4.2.5官方文档,现在MVC部分已经翻译完毕,现在重新优化翻译并审校,制作离线文档中。制作完成后将发布于博客。...
  • HermaeuxMora
  • HermaeuxMora
  • 2016年05月18日 09:18
  • 6788

Dockerfile 中文参考文档

如何写Dockerfile,Dockerfile 参考文档 | Deepzz's Blog  https://deepzz.com/post/dockerfile-reference.html ...
  • guyue35
  • guyue35
  • 2016年12月27日 01:03
  • 1908

Spring Security3.0.1中文参考文档

  • 2013年07月19日 15:00
  • 245KB
  • 下载

Spring Security 使web应用更加安全

一句话介绍Spring Security 是基于Spring AOP和Servlet过滤器的安全框架,安全主要包括两个操作“认证”与“验证”(有时候也会叫做权限控制)开始使用引入类库,例子中使用到的s...
  • xiaoping0915
  • xiaoping0915
  • 2017年04月15日 14:11
  • 2379

Spring Boot示例 - 4. 使用Spring Boot和Spring Security构建安全的Web应用

一、概述 Spring Boot提供的自动配置和无XML化,使得构建安全的Web应用变得非常容易。本文将演示如何使用Spring Boot和Spring Security构建基于角色的访问控制(RB...
  • qiutongyeluo
  • qiutongyeluo
  • 2016年07月15日 18:14
  • 5757

Spring Security 3.0.1 中文官方文档

  • 2013年08月16日 16:53
  • 1.94MB
  • 下载

Spring+Security-3.0.1中文官方文档

  • 2013年08月06日 23:16
  • 1.6MB
  • 下载

Spring Security-3.0.1 中文官方文档(翻译版).pdf

  • 2012年02月14日 12:24
  • 19.92MB
  • 下载

Spring_Security-3.0.1中文官方文档

  • 2012年09月19日 11:09
  • 1.78MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring_Security_3.0.1中文参考文档 PARTIII.web应用安全
举报原因:
原因补充:

(最多只允许输入30个字)