WEB开发网
开发学院软件开发Java 使用 Acegi 保护 Java 应用程序,第 5 部分: 保护... 阅读

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

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 可以看到,清单 1 使用名为 WebApplicationContextUtils 的类提取 Web 应用程序上下文的实例,使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean(2),WebApplicationContextUtils 是 S

可以看到,清单 1 使用名为 WebApplicationContextUtils 的类提取 Web 应用程序上下文的实例。WebApplicationContextUtils 是 Spring 提供的一个工具类。

在得到 Web 应用程序上下文之后,能够调用它的 getBean() 方法得到在 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> 

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Acegi 保护

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接