使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean
2010-03-18 00:00:00 来源:WEB开发网JSF 使用 Acegi 调用 publicCatalog 和 privateCatalog beans 的 getter 方法获取公共和私有数据。
Acegi 再次执行对访问 bean 的授权过程。(请参阅 第 3 部分 对 Java 对象进行这一授权过程的详细讨论。)
如果 Acegi 发现用户得到授权可以访问 bean,就会调用 getter 方法,获取公共和私有数据,并将数据提供给 JSF。
JSF 调用 catalog bean 的 setter 方法在 catalog bean 中设置公共和私有数据。
JSF 执行其生命周期并提供 JSF 页面。
具有安全托管 bean 的 JSF-Acegi 示例应用程序
本文附带了一个名为 JSFAcegiSampleWithSecureManagedBeans 的示例应用程序(请参阅 下载)。它使用前面两节介绍的技术保护对 JSF 托管 bean 内包装的数据的访问。
要部署示例应用程序,请执行 第 1 部分 的 “部署和运行应用程序” 小节中的两个步骤。还需要从 Sun 的 JSF 网站下载 jsf-1_1_01.zip 并解压。将 jsf-1.1.X.zip 中的所有文件复制到 JSFAcegiSampleWithSecureManagedBeans 应用程序的 WEB-INF/lib 文件夹中。还需要下载 cglib-full-2.0.2.jar 文件(在本系列的 第 3 部分 中用到过)并将它复制到 JSFAcegiSampleWithSecureManagedBeans 应用程序的 WEB-INF/lib 文件夹中。从浏览器访问 http://localhost:8080/JSFAcegiSampleWithSecureManagedBeans 可以调用示例应用程序。
直接在 JSF 应用程序中使用 Acegi 的 IOC bean
您已经学习了如何将 JSF 托管 bean 的属性映射到 Acegi 的 IOC bean,如何配置 DelegatingVariableResolver 以将表达式解析为 IOC bean。还看到了 JSF 和 Acegi 如何协作以保护对 bean 数据的访问。
更多精彩
赞助商链接