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

使用 Acegi 保护 Java 应用程序,第 3 部分: 实现对 Java 对象的访问控制

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 现在查看 清单 2 中 <bean> 标记的第二个 <property> 子元素,它指定了名为 interceptorNames 的代理,使用 Acegi 保护 Java 应用程序,第 3 部分: 实现对 Java 对象的访问控制(6),它将一个或多个拦截器的名称封装起来

现在查看 清单 2 中 <bean> 标记的第二个 <property> 子元素。它指定了名为 interceptorNames 的代理,它将一个或多个拦截器的名称封装起来。我将在后文详细讨论拦截器概念。现在,只需了解拦截器可以拦截用户并在用户访问 bean 之前实现访问控制策略。

现在,您已了解了如何对希望进行保护的 bean 配置代理。接下来,您将了解 Spring 的 IOC 框架如何在内部为应用程序的 bean 创建代理对象。

Spring IOC 发挥效用

在 “使用 Spring 创建 Java 对象” 的步骤 5 和步骤 6 中,您了解了 XMLWebApplicationContext 类如何从 XML 配置文件中读取 bean 定义并随后创建 bean 实例。在创建 bean 实例之前,XMLWebApplicationContext 类将检查 XML 配置文件是否包含任何代理创建器 bean(即实现 BeanPostProcessor 接口的 bean)配置。如果存在该 bean,它将要求代理创建器为您希望进行保护的 bean 创建 bean 代理。

现在考虑代理创建器如何在内部创建代理对象:

代理创建器(即 BeanNameAutoProxyCreator 类)装载 清单 2 中配置的 beanNames 属性文件中指定的所有 bean 名称。

代理创建器使用 bean 名称装载各自的 Java 类,这些类使用了每个 bean 定义的 class 属性。

代理创建器创建 清单 2 所示的 interceptorNames 属性中指定的拦截器的实例。

最后,代理创建器创建一个 Cglib2AopProxy 类的实例,将所有 bean 名称(步骤 2)和拦截器(步骤 3)传递到 Cglib2AopProxy 类。Cglib2AopProxy 类是 Spring 框架的一部分并用于生成动态代理对象。在本例中,Cglib2AopProxy 类将创建安全 bean 访问控制所需的代理对象。

上一页  1 2 3 4 5 6 7 8 9 10  下一页

Tags:使用 Acegi 保护

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