- 浏览: 293307 次
- 性别:
- 来自: 唐山
最新评论
-
小灯笼:
JBPM5.4实战流程引擎开发网盘地址:https://pan ...
跟我学工作流——jBPM4视频教程(免费) -
Kai_Ge:
学会做人 写道临远大哥,谢谢你的贡献大名鼎鼎的临远!!膜拜中。 ...
Spring Security-3.0.1中文官方文档(翻译版) -
漂泊一剑客:
博主,你自己电脑上有下载,这些信息吗,能否分享一下给我
跟我学工作流——jBPM4视频教程(免费) -
Rookie_Li:
您好,您的教程很有用,请问例子的源码在哪下载?
spring security权限管理手册升级至spring security-3.1.3 -
nullFFF:
马教授 写道现在还用4有点过时了,最新的都已经是5.4了,目前 ...
跟我学工作流——jBPM4视频教程(免费)
第 9 章 图解过滤器
位于过滤器顶端,第一个起作用的过滤器。
用 途一,在执行其他过滤器之前,率先判断用户的session中是否已经存在一个SecurityContext了。如果存在,就把 SecurityContext拿出来,放到SecurityContextHolder中,供Spring Security的其他部分使用。如果不存在,就创建一个SecurityContext出来,还是放到SecurityContextHolder中, 供Spring Security的其他部分使用。
用途二,在所有过滤器执行完毕后,清空SecurityContextHolder,因为SecurityContextHolder是基于ThreadLocal的,如果在操作完成后清空ThreadLocal,会受到服务器的线程池机制的影响。
只处理注销请求,默认为/j_spring_security_logout。
用途是在用户发送注销请求时,销毁用户session,清空SecurityContextHolder,然后重定向到注销成功页面。可以与rememberMe之类的机制结合,在注销的同时清空用户cookie。
处理form登陆的过滤器,与form登陆有关的所有操作都是在此进行的。
默认情况下只处理/j_spring_security_check请求,这个请求应该是用户使用form登陆后的提交地址,form所需的其他参数可以参考:???。
此过滤器执行的基本操作时,通过用户名和密码判断用户是否有效,如果登录成功就跳转到成功页面(可能是登陆之前访问的受保护页面,也可能是默认的成功页面),如果登录失败,就跳转到失败页面。
此过滤器用来生成一个默认的登录页面,默认的访问地址为/spring_security_login,这个默认的登录页面虽然支持用户输入用户名,密码,也支持rememberMe功能,但是因为太难看了,只能是在演示时做个样子,不可能直接用在实际项目中。
如果想自定义登陆页面,可以参考:第 4 章 自定义登陆页面。
此过滤器用于进行basic验证,功能与AuthenticationProcessingFilter类似,只是验证的方式不同。有关basic验证的详细情况,我们会在后面的章节中详细介绍。
有关basic验证的详细信息,可以参考:第 12 章 basic认证。
此过滤器用来包装客户的请求。目的是在原始请求的基础上,为后续程序提供一些额外的数据。比如getRemoteUser()时直接返回当前登陆的用户名之类的。
此过滤器实现RememberMe功能,当用户cookie中存在rememberMe的标记,此过滤器会根据标记自动实现用户登陆,并创建SecurityContext,授予对应的权限。
有关rememberMe功能的详细信息,可以参考:第 14 章 自动登录。
此过滤器的作用是处理中FilterSecurityInterceptor抛出的异常,然后将请求重定向到对应页面,或返回对应的响应错误代码。
防御会话伪造攻击。有关防御会话伪造的详细信息,可以参考:第 16 章 防御会话伪造。
用户的权限控制都包含在这个过滤器中。
功能一:如果用户尚未登陆,则抛出AuthenticationCredentialsNotFoundException“尚未认证异常”。
功能二:如果用户已登录,但是没有访问当前资源的权限,则抛出AccessDeniedException“拒绝访问异常”。
功能三:如果用户已登录,也具有访问当前资源的权限,则放行。
至此,我们完全展示了默认情况下Spring Security中使用到的过滤器,以及每个过滤器的应用场景和显示功能,下面我们会对这些过滤器的配置和用法进行逐一介绍。
评论
这个类中读取xml,向ctx注册对应的bean和filter和service和provider。。等等,有关命名空间配置的所有类都在org.springframework.security.config包下。
信息: FilterChainProxy: FilterChainProxy[ UrlMatcher = org.springframework.security.util.AntUrlPathMatcher[requiresLowerCase='true']; Filter Chains: { /**=[ org.springframework.security.context.HttpSessionContextIntegrationFilter[ order=200;], org.springframework.security.ui.logout.LogoutFilter[ order=300; ], org.springframework.security.ui.webapp.AuthenticationProcessingFilter[ order=700; ], org.springframework.security.ui.webapp.DefaultLoginPageGeneratingFilter[ order=900; ], org.springframework.security.ui.basicauth.BasicProcessingFilter[ order=1000; ], org.springframework.security.wrapper.SecurityContextHolderAwareRequestFilter[ order=1100; ], org.springframework.security.ui.rememberme.RememberMeProcessingFilter[ order=1200; ], org.springframework.security.providers.anonymous.AnonymousProcessingFilter[ order=1300; ], org.springframework.security.ui.ExceptionTranslationFilter[ order=1400; ], org.springframework.security.ui.SessionFixationProtectionFilter[ order=1600; ], org.springframework.security.intercept.web.FilterSecurityInterceptor@e2fbeb ] } ]
Spring Security一启动就会包含这样一批负责各种安全管理的过滤器,可以在系统启动的日志里看到这样的信息。
与之相关的源代码在config包下。
发表评论
-
spring security权限管理手册升级至spring security-3.1.3
2012-12-08 01:01 12329费了半天劲,终于把原来基于spring security 2. ... -
请把acegi替换成Spring Security(内附视频)
2010-03-22 09:54 6564在对web项目进行权限管理时,采用的方法无非是写一大堆JSP或 ... -
Spring Security-3.0.1中文官方文档(翻译版)
2010-01-19 09:36 10656这次发布的Spring Security-3.0.1是一个bu ... -
敬献Spring Security-3.x官方文档中文版
2009-12-29 11:43 10893Spring Security-3.x新近发布,整体的项 ... -
【分享】《基于Spring Security的ACL实现与扩展》内附ppt下载
2009-09-21 09:43 3456上次朋友间技术交流整理的ppt文档,因为之前一直在整理Spri ... -
Spring Security 安全权限管理手册(0.1.0更新)
2009-08-05 10:26 5043随着内容的堆叠,文档结构开始渐渐混乱了,到0.1.0为止关于认 ... -
Spring Security 安全权限管理手册(0.0.9更新)
2009-07-27 09:27 3283这次更新中包含了一个在用户输入密码错误三次后锁定账户的示 ... -
Spring Security 安全权限管理手册(0.0.8更新)
2009-07-20 09:58 1894Spring Security-2.0.5发布,这个bug ... -
Spring Security 安全权限管理手册(0.0.7更新)
2009-07-13 00:38 3199这一次迭代,对章节的命名进行了这里,目标是尽快覆盖Spring ... -
Spring Security 安全权限管理手册(0.0.6更新)
2009-07-10 01:54 1678这一次,我们添加了taglib标签库的时候,以及如何使用多种方 ... -
Spring Security手册更新cas, basic, acl
2009-06-29 18:13 2675这次更新的都是重头戏,CAS和ACL。其中ACL只是简述了Sp ... -
Spring Security手册更新——添加“管理会话”和对namespace,database
2009-06-22 10:04 1947新增的部分有,第八章“管理会话”,附录D,E分别整 ... -
Spring Security-2.0导航-基础篇,又添两章
2009-06-10 10:31 1921目前我们在基础篇中已经编写了六章,基本上可 ... -
Spring Security-2.0入门教程(基础篇)
2009-06-04 17:48 4783欢迎阅读咱们写的Spring Security教程,咱们既不想 ... -
springsecurity-2.x官方文档中文翻译初步整理完成,附上几个例子
2008-08-17 11:12 7899预览地址:http://family168.com/tutor ... -
(翻译)Spring Security-2.0.x参考文档“领域对象安全”
2008-08-13 00:18 2203领域对象安全 24.1. 概述 请注意:在2.0.0之前,S ... -
(翻译)Spring Security-2.0.x参考文档“安全对象实现”
2008-08-12 09:50 2032安全对象实现 23.1. AOP联盟 (MethodInvoc ... -
(翻译)Spring Security-2.0.x参考文档“通用授权概念”
2008-08-11 18:22 2826通用授权概念 22.1. 授权 在认证部分简略提过了,所有的 ... -
(翻译)Spring Security-2.0.x参考文档“安全数据库表结构”
2008-08-10 09:52 2038安全数据库表结构 可以为框架采用不同的数据库结构,这个附录为 ... -
(翻译)Spring Security-2.0.x参考文档“容器适配器认证”
2008-08-09 10:08 1936容器适配器认证 21.1. 概述 非常早期版本的Spring ...
相关推荐
Spring Security的入门通常以一个简单的Hello World示例开始,通过这个示例用户可以了解如何配置过滤器,利用命名空间简化配置过程,并且完善整个项目结构。运行示例将帮助用户理解Spring Security的基本工作原理。 ...
4. **web.xml**: 配置 Spring Security 的过滤器和监听器。 ```xml <filter-name>springSecurityFilterChain <filter-class>org.springframework.web.filter.DelegatingFilterProxy <filter-name>...
首先,我们需要在 Web 应用程序中配置 Spring Security 过滤器。这可以通过在 `web.xml` 文件中定义一个名为 `springSecurityFilterChain` 的过滤器来完成。 ```xml <filter-name>springSecurityFilterChain ...
- **配置过滤器:** 使用Spring Security提供的过滤器来实现基本的安全控制。 - **使用命名空间:** 通过XML配置文件中的命名空间简化Spring Security的配置过程。 - **完善整个项目:** 包括项目搭建、依赖管理...
- 描述如何将配置的过滤器和命名空间应用到实际项目中,构建一个完整的Spring Security安全体系。 - **1.4 运行示例** - 提供一个具体的示例,演示如何运行配置好的Spring Security项目。 **2. 使用数据库管理...
- **图解过滤器**:这一部分通过图示方式详细解释了Spring Security中的各个过滤器的工作原理及它们之间的交互过程。 - **HttpSessionContextIntegrationFilter**:负责维护用户会话状态。 - **LogoutFilter**:...
- **配置过滤器**: Spring Security 提供了一组预定义的过滤器,可以轻松地在应用中集成安全功能。 - **HttpSessionContextIntegrationFilter**: 负责会话管理和同步。 - **LogoutFilter**: 处理登出逻辑。 - **...
- Spring Security通过一系列的过滤器来实现对Web应用程序的安全控制。了解如何配置这些过滤器是入门Spring Security的关键。 - **示例代码**: 在`web.xml`中配置`<filter>`和`<filter-mapping>`,定义Spring ...
"SpringSecurity整合Jwt过程图解" 在本文中,我们将详细介绍SpringSecurity整合Jwt的过程图解。Jwt(Json Web Token)是一种基于Token的身份验证机制,广泛应用于Web应用程序的身份验证和授权中。SpringSecurity是...
Spring Security通过一系列的过滤器来处理安全性问题。在Spring Security中最基本的配置之一是定义过滤器。为了创建一个简单的Spring Security配置,我们需要在`web.xml`中注册Spring Security提供的`Filter`。 ```...
- **配置过滤器**:介绍如何在Spring Security中配置基本的安全过滤器,以拦截特定的请求并进行认证或授权。 - **使用命名空间**:展示如何利用Spring Security的XML命名空间简化安全配置。 - **完善整个项目**:...
3. **过滤器链(Filter Chain)**:Spring Security通过一系列过滤器实现其功能。如`HttpSessionAuthenticationStrategy`处理会话认证,`AnonymousAuthenticationFilter`处理匿名用户,`ExceptionTranslationFilter`...
SpringSecurity基于过滤器链进行工作,这一章将详解各个核心过滤器的作用,如DelegatingFilterProxy、ChannelProcessingFilter、LogoutFilter等,以及它们在请求处理流程中的位置和功能。 7. **第七章:单点登录**...
- `security.jpg`可能是一个关于安全过滤器的图解,Acegi使用`SecurityContextHolder`来存储当前请求的认证信息,并通过一系列的过滤器(如`SecurityEnforcementFilter`)来检查访问权限。 - `...