快速业务通道

使用Acegi保护Java应用程序,第5部分: 保护JSF应用程序中的JavaBean - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
) 方法得到在 Acegi 配置文件中配置的任何 bean。然后可以调用该 bean 的 getter 方法, 并将 getter 方法返回的数据以参数的形式存储在 servlet 请求对象中。这些 步骤允许 清单 1 中的 <outputText> 标签向用户提供数据。

不是最佳方式

像 清单 1 那样直接管理 bean 数据虽然简单,但并不可取。这个方法违反 了 JSF 的模型-视图-控制器(MVC)架构,MVC 架构要求使用模型 bean 保存应 用程序数据。所以最好不要在 JSF 应用程序中使用这种策略,除非在非常简单 的情况下。

Bean 依赖关系

Spring 的 IOC 框架通过表示 bean 之间的依赖关系,提供了一种管理模型 bean 的有用方式。我在 第 1 部分的 “架构和组件” 小节解释了 IOC 中的 bean 依赖关系概念。

JSF 提供了管理应用程序模型 bean 的丰富功能。这类 bean — 称为托管 bean — 被应用于大多数 JSF 应用程序,所以大多数实际的 JSF 应用程序都需 要保护托管 bean。

本文余下部分将讨论在 JSF 应用程序中使用安全 bean 的两个策略:

使用 Acegi 保护 JSF 托管 bean

使用直接由 Acegi 在 JSF 标签中保护的 反转控制(IOC)bean

保护 JSF 托管 bean

请看 清单 2 所示的 JSF 页面,其中使用了一个名为 catalog 的 JSF 托管 bean:

清单 2. 使用托管 bean 的简单 JSF 页面

<%@ taglib uri="http://java.sun.com/jsf/html"  prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" % > <html> <head> <title>JSF Acegi simple method security application: TEST  PAGE</title> </head> <body>    <f:view>     <h2>     <h:outputText value="Protected Resource 1:"/>     </h2>     </br>     <h3>     <h:outputText value="#{catalog.publicData}"/>     </br>     <h:outputText value="#{catalog.privateData}"/>     </h3>    </f:view> </body> </html>

清单 2 使用了两个 JSF <outputText> 标签。第一个 <outputText> 标签有一个 #{catalog.publicData} 的 value 属性,第 二个标签有一个 #{catalog.privateData} 的 value 属性。这两个标签使用 catalog bean 的 publicData 和 privateData 属性,它们分别提供公共和私有 的编目数据。

在 第 3 部分 的 “访问执行过代理的 Java 对象” 小节中,我配置了两个 Acegi bean,分别名为 publicCatalog 和 privateCatalog。现在我要将第 3 部分的 publicCatalog bean(不受保护的供公共访问的 bean)映射到 catalog bean 的 publicData 属性。类似的,将第 3 部分的 privateCatalog(在 第 3 部分 的清单 3 中配置的受保护且执行过代理的 bean)映射到上面 清单 2 的 托管 bean catalog 的 privateData 属性。映射完成后,catalog bean 就会充 当 JSF 编目应用程序的公共和私有数据的包装器。

使用Acegi保护Java应用程序,第5部分: 保护JSF应用程序中的JavaBean(3)

时间:2011-09-07 ibm Bilal Siddiqui

定义托管 bean

清单 3 演示了如何定义 catalog bean,以便将它的 publicData 和 privateData 属性分别映射到 Acegi 的 publicCatalog 和 privateCatalog bean:

清单 3. 将 catalog 的属性映射到 Acegi 的 bean

<?xml version="1.0"?> <!DOCTYPE faces-config PUBLIC   "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号