频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用Acegi进行身份认证(之一)

来源: 作者:IT168 陈雄华 出处:巧巧读书 2008-02-09 进入讨论组
下一页 1 2 3 4 5 

概述

Acegi是专门为Spring Web应用提供安全保护的开源框架,它通过配置的方式就可以对业已存在的应用实施安全控制。在Acegi实施安全控制之前,必须获取操作者的身份,并进一步获知用户的权限,这样Acegi才可能对应用资源实施安全控制。

在本文中,我们将介绍Acegi如何对操作者进行身份认证的内容。

将Acegi集成到Web应用程序中

Acegi通过多个不同用途的Servlet过滤器截取HTTP请求,实施访问安全的控制。按照传统的方式,我们应该在web.xml配置文件中通过<filter>定义Servlet过滤器并使用<filter-mapping>元素定义过滤器对应的URL匹配模式。

由于这些过滤器需要Spring容器中其它Bean的支持完成访问权限控制,最原始的方式是在过滤器中通过硬编码的方式访问Spring容器中的Bean:

WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(servletContext);
FooBean foo = (FooBean)ctx.getBean(“foo”);

这种硬编码的方式显然不太方便,如何让过滤器既能够正确工作又能享受到Spring IoC的好处呢?Acegi通过“过滤器代理”来解决这个问题。

代理Acegi的过滤器

org.acegisecurity.util.FilterToBeanProxy使用Spring容器中的Bean代理过滤器,FilterToBeanProxy是一个标准的Servlet过滤器。在内部FilterToBeanProxy通过WebApplicationContext访问Spring容器,并将过滤器处理逻辑委托给一个Spring容器中的Bean。这样,我们就可以在web.xml中定义FilterToBeanProxy,声明过滤器匹配的URL模式,并在Spring容器中充分利用IoC进行定义委托的Bean。

FilterToBeanProxy支持两个初始化参数:

l targetClass:委托Bean的全限定类名,委托类必须实现过滤器接口。你必须在Spring容器中至少定义一个该类的Bean,否则将抛出异常。当Spring容器中拥有多个该委托类的Bean时,FilterToBeanProxy选择第一个委托类的Bean(这种情况应该避免);

l targetBean:当然你也可以通过一个Bean名指定委托的Bean。
图 1说明了Acegi是如何通过FilterToBeanProxy将Servlet容器和Spring容器结合起来共同定义一个功能齐备的Servlet过滤器的:

使用Acegi进行身份认证(之一)(图一)
图 1 通过过滤器代理将Servlet容器和Spring容器结合起来



org.acegisecurity.securechannel.ChannelProcessingFilter是一个Acegi的过滤器,它负责处理安全通道的转换。如果直接在web.xml中定义ChannelProcessingFilter,我们将很难在不编写代码的情况下,使其引用Spring容器中的Bean。借助FilterToBeanProxy的帮助,我们就可以放心地在Spring容器中配置ChannelProcessingFilter,得到一个完整可用实例。当然ChannelProcessingFilter是需要服务于特定URL请求的,而过滤器URL映射只能在Servlet容器的web.xml中定义,这个工作由FilterToBeanProxy对应的<filter-mapping>元素完成。

如果我们将Servlet容器和Spring容器比作牛郎和织女,那么FilterToBeanProxy无疑就是鹊桥了。事实上,Acegi本身并不依赖于FilterToBeanProxy,它是一种充分利用Spring容器依赖注入好处配置Servlet过滤器的一个方法,正因为如此,所以Acegi社区中有很多开发者建议FilterToBeanProxy应该从Acegi中剥离出来,将其加入到Spring的核心类库中。收藏 http://www.qqread.com/java/2008/02/u396578.html 更多文章 更多内容请看Cisco认证体系专题专题,或进入讨论组讨论。
下一页 1 2 3 4 5 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章