保护Spring
保护Web应用程序
Spring Security对Web安全性的支持大量地依赖于Servlet过滤器.
Spring Security提供有若干个过滤器,它们能够拦截Servlet请求,并将这些请求转给认证和访问决策管理器处理,从而增强安全性。
表7.4 Spring Security通过几个Servlet过滤器来控制对Web应用程序的访问
过滤器(org.acegisecurity.*)
adapters.HttpRequestIntegrationFilter
使用来自Web容器提供的用户主体的信息填充安全上下文。
captcha.CaptchaValidationProcessingFilter
利用Captcha技术,帮助把一个用户识别为人(与自动化过程相对比)。Captcha是一种用来区分人类用户和自动化/计算机驱动用户的技术,它要求用户识别某个人类容易识别、但是计算机难于辨认出的东西(通常是一幅图像)。
concurrent.ConcurrentSessionFilter
确保一个用户没有在设置的时间内同时登录。
context.HttpSessionContextIntegrationFilter
使用从HttpSession获得的信息填充安全上下文。
intercept.web.FilterSecurityInterceptor
充当安全拦截器的角色,决定是否允许访问某一受保护的资源。
providers.anonymous.AnonymousProcessingFilter
用来将一个未经身份验证的用户识别为匿名用户。
续表
过滤器(org.acegisecurity.*)
目 的
securechannel.ChannelProcessingFilter
确保正通过HTTP或HTTPS发送一个请求(按照需求的要求)。
ui.basicauth.BasicProcessingFilter
尝试通过处理一个HTTP基本身份验证来验证一个用户的身份。
ui.cas.CasProcessingFilter
通过处理CAS(中央认证服务)权证来验证一个用户的身份。
ui.digestauth.DigestProcessingFilter
尝试通过处理一个HTTP摘要身份验证来验证一个用户的身份。
ui.ExceptionTranslationFilter
处理当前过滤器链中其他任何过滤器所抛出的任一AccessDeniedException或AuthenticationException。
ui.logout.LogoutFilter
用于将一个用户退出当前应用程序。
ui.rememberme.RememberMeProcessingFilter
自动验证已要求当前应用程序“记住”的用户身份。
ui.switchuser.SwitchUserProcessingFilter
用于断开某个用户。提供的功能与Unix的su相似。
ui.webapp.AuthenticationProcessingFilter
接受当前用户的主体和凭证,并尝试验证该用户的身份。
ui.webapp.SiteminderAuthenticationProcessingFilter
通过处理CA/Netegrity SiteMinder标题来验证一个用户的身份。
ui.x509.X509ProcessingFilter
通过处理一个客户端Web浏览器提交的X.509证书来验证一个用户的身份。
wrapper.SecurityContextHolderAwareRequestFilter
为servlet请求增加一个请求外壳。
1.加入jar
2。web.xml中加入Filter
<filter>
<filter-name>Spring Security Filter Chain Proxy</filter-name>
<filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
<init-param>
<param-name>targetClass</param-name>
<param-value>org.acegisecurity.util.FilterChainProxy</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring Security Filter Chain Proxy</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
3.名称-security.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/security.xml
</param-value>
</context-param>
Error filterStart
@Secured({"ROLE_USER"})