发表于: 2017-11-17 22:11:00
0 557
【今日完成】
今天改了两个BUG
一、把邮箱验证码的发送限制取消了,仅仅保留短信的验证限制,依旧是每日3次
二、视频与文章列表的点赞收藏不匹配,已经修复了
把接口文档完善了一下,包括一些入参,还有一些返回值。
理解Spring Security的模块
不管你想使用Spring Security保护哪种类型的应用程序,第一件需要做
的事就是将Spring Security模块添加到应用程序的类路径下。Spring
Security 3.2分为11个模块,如表9.1所示。
9.1.2 过滤Web请求
Spring Security借助一系列Servlet Filter来提供各种安全性功能。你可
能会想,这是否意味着我们需要在web.xml
或WebApplicationInitializer中配置多个Filter呢?实际上,
借助于Spring的小技巧,我们只需配置一个Filter就可以了。
DelegatingFilterProxy是一个特殊的Servlet Filter,它本身所做
的工作并不多。只是将工作委托给一个javax.servlet.Filter实
现类,这个实现类作为一个<bean>注册在Spring应用的上下文中,
如图9.1所示。
图9.1 DelegatingFilterProxy把Filter的处理逻辑委托给Spring应用
上下文中所定义的一个代理Filter bean
如果你喜欢在传统的web.xml中配置Servlet和Filter的话,可以使
用<filter>元素,如下所示:
在这里,最重要的是<filter-name>设置成了
springSecurityFilterChain。这是因为我们马上就会将Spring
Security配置在Web安全性之中,这里会有一个名
为springSecurityFilterChain的Filter
bean,DelegatingFilterProxy会将过滤逻辑委托给它。
如果你希望借助WebApplicationInitializer以Java的方式来配
置Delegating-FilterProxy的话,那么我们所需要做的就是创
建一个扩展的新类:
307
AbstractSecurityWebApplicationInitializer实现了
WebApplication-Initializer,因此Spring会发现它,并用它
在Web容器中注册DelegatingFilterProxy。尽管我们可以重载
它的appendFilters()或insertFilters()方法来注册自己选择
的Filter,但是要注册DelegatingFilterProxy的话,我们并不需
要重载任何方法。
不管我们通过web.xml还是通过
AbstractSecurityWebApplicationInitializer的子类来配
置DelegatingFilterProxy,它都会拦截发往应用中的请求,并
将请求委托给ID为springSecurityFilterChain bean。
springSecurityFilterChain本身是另一个特殊的Filter,它也
被称为FilterChainProxy。它可以链接任意一个或多个其他的
Filter。Spring Security依赖一系列Servlet Filter来提供不同的安全特
性。但是,你几乎不需要知道这些细节,因为你不需要显式声
明springSecurityFilterChain以及它所链接在一起的其他
Filter。当我们启用Web安全性的时候,会自动创建这些Filter。
【明日计划】
部署一下环境,给前端用
继续学习SpringSecurity
【今日收获】
初探了一波SpringSecurity
评论