Acegi安全系统与JSF结合

在Java Web开发中,Javabean安全涉及到两个不同的概念,认证和授权。前者是关于确认用户是否确实是他们所宣称的身份。授权则是关于确认用户是否有允许执行一个特定的操作。JSF (JavaServer Faces) 是J2EE 5开发平台的组成部分,作为表示层的技术,越来越受到Java开发人员的亲睐。在开发过程中,JSP通过DI 技术很方便的和使用类似技术的 Spring 进行整合。JSF在与Acegi安全系统结合之后,让JavaBean的安全性得到很大提高。

成都创新互联是专业的乌翠网站建设公司,乌翠接单;提供网站建设、网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行乌翠网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

Acegi安全系统一个很重要的特点就是它并没有角色和用户组的概念。Acegi安全系统目前支持两类安全管理对象。***类是为了使Spring管理的Bean可以作为MethodInvocation来使用,Bean可以通过ProxyFactoryBean和BeanNameAutoProxyCreator来管理,就像在Spring的事务管理一样使用。第二类是FilterInvocation。它用过滤器(Filter)来创建,并简单地包装了HTTP的 ServletRequest,ServletResponse和FilterChain。FilterInvocation可以用来保护HTTP资源。通常,开发人员并不需要了解它的工作机制,因为他们只需要将Filter加入web.xml,Acegi安全系统就可以工作了。

本文用一个简单的Web应用实例的Apache myfaces jsf的执行情况向大家展示,如何使用Spring的application context整合acegi的认证和授权的功能,达到JSF的应用。读者可以理解到Acegi如何落实URL级别的角色授权,以及如何实施Acegi的业务层的安全说明。

示例应用程序是一个用户登录购买的页面。用户登录窗口输入正确的用户名和密码,重定向到一个网页,在新的网页中用户可能发生购买行为等。我们将使用 Acegi安全框架的配置安全的细节,确保用户的ID已经验证,并且他的存在对购买页的授权。用户可以访问购买页,如果有作用 role_urlaccess 。就确保了用户作出的购买行为是一个安全的商业行为。JSF与Acegi安全授权验证中牵涉到Acegi、JSF、Spring 三个框架。
***步:用户访问JSF网页
第二步:Acegi检查访问用户是否被授权访问该页面。
第三步:如果授权验证是有效的,就将控制权交给一个为JSF服务的界面servlet。
第四步:在准备的过程中,JSF将会找到Catalog bean。
第五步:JSF检查界面结构文件(Faces configuration file)来寻找已经定义好的Catalog,并且实例化。Catalog bean的publicData以及privateData 属性参数会被写入到没有被具体化的publicCatalog、privateCatalog beans。
第六步:JSF利用Spring的 DelegatingVariableResolver 可变解析器解释 publicCatalog和 privateCatalog bean。
第七步:JSF利用Acegi 生成获得publicCatalog 和 privateCatalog beans方法,读取公共数据和私有数据。
第八步:Acegi再次执行它的认证进程来访问bean。
第九步:当Acegi获得用户成功地访问了bean信息后,系统将产生一个获取方法来读取公共和私有的数据,并且将数据传送给JSF。
第十步:JSF调用目录bean的设置方法,将公共和私有数据写入Catalog bean
第十一步:JSF执行其周期完成,并顺利传送页面JSF。

这样,一个用户从输入用户到进入系统,进行购买操作的流程就完成。在这个过程中,Acegi与JSF一起完成了用户的认证授权工作。相对于JSP用户访问授权的过程,JSF的生命周期要比JSP复杂得多。JSP的生命周期非常简单,页面被执行时,HTML标记立即被生成了,生命周期随即结束。而一个完整的 JSF-Acegi请求-处理生命周期被精心规划为11个阶段,但JSF框架会管理这一切,所以,程序员在获得更多控制能力的同时,工作量并没有增加,同时也让系统安全性能得到较大的提高。总的来说,案例相对简单,但是JSF-Acegi安全处理是非常到位的,借助本文,笔者希望大家对JSF以及 Acegi给与更多关注。

名称栏目:Acegi安全系统与JSF结合
文章路径:http://www.hantingmc.com/qtweb/news29/89629.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联