- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实战Acegi
实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架
作者:一餐三碗
绍如何配置和扩展Acegi框架以适应实际需要。
1. 概述
配置Acegi安全系统能够轻松地适用于复杂的安全需求。它既能应用于WEB应用也能应用于非WEB应用。在 本文的示例程序,介绍如何配置和扩展Acegi框架以适应实际需要,使其能够从数据库中读取配置信息。
2. 例子说明
acegi-sample
│ contactadd.jsp//增加联系人页面
│ contactedit.jsp//编辑联系人页面
│ contactlist.jsp//联系人列表页面
│ contactmainterance.jsp//联系人操作页面
│ index.jsp//主页面
│ login.jsp//登录页面
│ logoff.jsp//登出页面
│
├─WEB-INF
│ │ web.xml
│ │ applicationContext-basic.xml
│ │ applicationContext-security-acegi.xml
│ │ perties
│ │
│ ├─src
│ │ └─sample//java代码目录
│ ├─classes
│ └─lib//依赖包目录
└─db//建表脚本目录
程序的ER图如下:
说明:authorities用来存放用户权限配置信息,其中,AUTHORITY字段存放以“AUTH_”开头的权限标志串。AUTH_TYPE
了,我们没有引入一般情况下会有的用户组或者角色的概念,不过在后面的内容里我们将看到对现有的安全模型进行扩展是一件很容易的事。
程序的静态类图如下:
3. 配置文件说明
接下来,我们将进入本文的重要内容,开始对Acegi应用程序所牵涉到的配置文件进行一一说明。
3.1 web.xml
实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架
context-param
param-namecontextConfigLocation/param-name
param-value
/WEB-INF/applicationContext-basic.xml
/WEB-INF/applicationContext-security-acegi.xml
/param-value
/context-param
其次声明Acegi过滤器。
!--Acegi Filter Chain Proxy --
filter
filter-nameAcegi Filter Chain Proxy/filter-name
init-param
param-nametargetClass/param-name
/init-param
/filter
filter-mapping
filter-nameAcegi Filter Chain Proxy/filter-name
url-pattern/*/url-pattern
/filter-mapping
说明:Acegi对WEB应用的支持主要是依靠servlet 过滤器(filter) 来实现的。每一个http request都将被这些过滤器层层拦截并进行安全处理(包括认证和授权)。针对不同的安全处理,Acegi提供了不同的过滤器。过滤器的配置信息位于web.xml,但是我们又希望把Acegi的过滤器配置信息放在SpringFramework的配置文件里(applicationContext-security-acegi.xml),从而实现对这些过滤器的“控制反转”。解决这个问题的方法是采用Acegi提供的FilterToBeanProxy。FilterToBeanProxy顾名思义就是对Acegi过滤器Bean的代理,它的主要功能就是将http请求依次分派给对应的过滤器Bean。
3.2 applicationContext-security-acegi.xml
bean id=filterChainProxy class=net.sf.acegisecurity.util.FilterChainProxy
property name=filterInvocationDefinitionSource
value
CONVERT_URL_TO_LOWERCASE_BEFO
文档评论(0)