使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制 - 编程入门网
bean 代理,Spring IOC 框架要求您对代理创建器 bean 的实 例进行配置。Spring 的 IOC 框架使用代理创建器创建代理对象。清单 2 为代 理创建器 bean 的配置文件,用于保护名为 privateCatalog 的 Java 对象:
清单 2. 代理 bean 配置
如清单 2 所示,<bean> 标记具有一个 class 属性,其值为 org.springframework.aop.framework.autoproxy. BeanNameAutoProxyCreator 。BeanNameAutoProxyCreator 类是 Spring IOC 框架的一部分,可以自动创建 bean 代理。Spring 框架提供了 BeanPostProcessor 接口,它提供了一种可扩 展机制,允许应用程序编写自己的逻辑来创建 bean 代理。Spring 的 BeanNameAutoProxyCreator 类实现了 BeanPostProcessor 接口并提供所有必需 的代理创建逻辑来保护 Java 类。因此,本文中您无需实现 BeanPostProcessor 接口。 在创建 bean 代理时,BeanNameAutoProxyCreator 类为所有由 beanNames 属性定义的 bean 创建代理(参见 清单 2 中 <bean> 标记的第一个 <property> 子元素)。beanNames 属性在 <list> 标记中包含一 个 bean 名称列表。在 清单 2 中,我只对希望为之创建代理的 privateCatalog bean进行了配置。 现在查看 清单 2 中 <bean> 标记的第二个 <property> 子元 素。它指定了名为 interceptorNames 的代理,它将一个或多个拦截器的名称封 装起来。我将在后文详细讨论拦截器概念。现在,只需了解拦截器可以拦截用户 并在用户访问 bean 之前实现访问控制策略。 现在,您已了解了如何对希望进行保护的 bean 配置代理。接下来,您将了 解 Spring 的 IOC 框架如何在内部为应用程序的 bean 创建代理对象。 使用Acegi保护Java应用程序,第3部分: 实现对Java对象的访问控制(4)时间:2011-09-07 ibm Bilal SiddiquiSpring 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 访问控 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |