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

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

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示:这个 系列 由五部分组成,介绍了 Acegi Security System,使用 Acegi 保护 Java 应用程序,第 5 部分: 保护 JSF 应用程序中的 JavaBean,并演示了如何使用 Acegi 保护企业级 Java 应用程序,本文是该系列的最后一部分,我从 servlet 上下文中取出了 Sprin

这个 系列 由五部分组成,介绍了 Acegi Security System,并演示了如何使用 Acegi 保护企业级 Java 应用程序。本文是该系列的最后一部分,将继续讨论使用 Acegi 保护 JSF 应用程序。在 第 4 部分 中,我介绍了如何在不编写 Java 代码的情况下使用 Acegi 保护 JSF 页面。我还详细说明了部署 JSF-Acegi 应用程序和用户访问该程序时发生的事件。在本部分中,我将着重介绍在 JSF 应用程序中保护 JavaBean 的技术。

首先展示如何将 第 3 部分 中演示的 bean 安全性概念应用于 JSF 应用程序,其效果不是太理想。然后演示两项新技术,这些新技术特别适合在 JSF 应用程序中保护 JavaBean。最后,总结四点策略,可以让您不用编写任何 Java 代码就能够使用 Acegi 在 JSF 应用程序中保护 bean。

简单的技术

在 JSF 应用程序中使用安全 bean 的最简单方法就是,执行 第 3 部分 的清单 4 中介绍的五个步骤。在第 3 部分中,我从 servlet 上下文中取出了 Spring 框架的 Web 应用程序上下文对象。可以在以后使用 Web 应用程序上下文安全地访问 bean。下面的 清单 1 演示了如何在 JSF 页面中使用 Web 应用程序上下文:

清单 1. 从 servlet 上下文提取 Web 应用程序上下文,并将其用于 JSF 页面

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
  pageEncoding="ISO-8859-1"%> 
<%@page import="sample.CatalogBean"%> 
<%@page import="org.springframework.web.context.support.WebApplicationContextUtils" %> 
<%@page import="org.springframework.web.context.WebApplicationContext" %> 
 
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> 
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> 
 
<html> 
<head> 
<title>Acegi simple method security application: TEST PAGE</title> 
</head> 
<body> 
 
  <f:view> 
   <h2> 
   <h:outputText value="Protected Resource 1:"/> 
   </h2> 
   <% 
   try { 
     WebApplicationContext webApplicationContext = 
       WebApplicationContextUtils.getWebApplicationContext( 
         this.getServletConfig().getServletContext()); 
     CatalogBean privateCatalog = (CatalogBean) 
       webApplicationContext.getBean("privateCatalog"); 
     String privateData = catalog.getData(); 
     request.setAttribute("privateData", privateData); 
  } 
  catch (Exception e) { } 
  %> 
 
  <h3> 
  <h:outputText value="#{privateData}"/> 
  </h3> 
 
 </f:view> 
</body> 
</html> 

1 2 3 4 5 6  下一页

Tags:使用 Acegi 保护

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