- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《SpringSecurity配置详解
论坛上看了不少Spring Security的相关文章。这些文章基本上都还是基于Acegi-1.X的配置方式,而主要的配置示例也来自于SpringSide的贡献。 众所周知,Spring Security针对Acegi的一个重大的改进就在于其配置方式大大简化了。所以如果配置还是基于Acegi-1.X这样比较繁琐的配置方式的话,那么我们还不如直接使用Acegi而不要去升级了。所以在这里,我将结合一个示例,重点讨论一下Spring Security 2是如何进行配置简化的。 搭建基础环境 首先我们为示例搭建基本的开发环境,环境的搭建方式,可以参考我的另外一篇文章:/wiki/struts2/1321-struts2-development-environment-to-build 整个环境的搭建包括:创建合适的目录结构、加入了合适的Library,加入了基本的Jetty启动类、加入基本的配置文件等。最终的项目结构,可以参考我的附件。 参考文档 这里主要的参考文档是Spring Security的自带的Reference。网络上有一个它的中文翻译,地址如下:/tutorial/springsecurity/html/springsecurity.html 除此之外,springside有一个比较完整的例子,不过是基于Acegi的,我也参阅了其中的一些实现。 Spring Security基本配置 Spring Security是基于Spring的的权限认证框架,对于Spring和Acegi已经比较熟悉的同学对于之前的配置方式应该已经非常了解。接下来的例子,将向大家展示Spring Security基于schema的配置方式。 最小化配置 1. 在web.xml文件中加入Filter声明
Xml代码
!--?Spring?security?Filter?--??
filter??
????filter-namespringSecurityFilterChain/filter-name??
????filter-classorg.springframework.web.filter.DelegatingFilterProxy/filter-class??
/filter??
filter-mapping??
????filter-namespringSecurityFilterChain/filter-name??
????url-pattern/*/url-pattern??
/filter-mapping??
!-- Spring security Filter --
filter
filter-namespringSecurityFilterChain/filter-name
filter-classorg.springframework.web.filter.DelegatingFilterProxy/filter-class
/filter
filter-mapping
filter-namespringSecurityFilterChain/filter-name
url-pattern/*/url-pattern
/filter-mapping
这个Filter会拦截所有的URL请求,并且对这些URL请求进行Spring Security的验证。 注意,springSecurityFilterChain这个名称是由命名空间默认创建的用于处理web安全的一个内部的bean的id。所以你在你的Spring配置文件中,不应该再使用这个id作为你的bean。 与Acegi的配置不同,Acegi需要自行声明一个Spring的bean来作为Filter的实现,而使用Spring Security后,无需再额外定义bean,而是使用http元素进行配置。 2. 使用最小的http配置
Xml代码
http?auto-config=true??
????intercept-url?pattern=/**?access=ROLE_USER?/??
/http??
http auto-config=true
intercept-url pattern=/** access=ROLE_USER /
/http
这段配置表示:我们要保护应用程序中的所有URL,只有拥有ROLE_USER角色的用户才能访问。你可以使用多个intercept-url元素为不同URL的集合定义不同的访问需求,它们会被归入一个有序队列中,每次取出最先匹配的一个元素使用。 所以你必须把期望使用的匹配条件放到最上边。 3. 配置UserDetailsServic
文档评论(0)