使用 Acegi 保护 Java 应用程序,第 3 部分: 实现对 Java 对象的访问控制
2010-03-18 00:00:00 来源:WEB开发网为 Java 对象配置代理
如果希望创建 bean 代理,Spring IOC 框架要求您对代理创建器 bean 的实例进行配置。Spring 的 IOC 框架使用代理创建器创建代理对象。清单 2 为代理创建器 bean 的配置文件,用于保护名为 privateCatalog 的 Java 对象:
清单 2. 代理 bean 配置
<bean id="proxyCreator"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>privateCatalog</value>
<!--Names of other beans to be proxied -->
</list>
</property>
<property name="interceptorNames">
<list>
<value>privateCatalogSecurityInterceptor</value>
</list>
</property>
</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进行了配置。
更多精彩
赞助商链接