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

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

 2010-03-18 00:00:00 来源:WEB开发网   
核心提示: 清单 5 展示 Acegi 的方法安全性拦截器的示例配置:清单 5. Acegi 的方法安全性拦截器的示例配置<beanid="privateCatalogSecurityInterceptor"class="org.acegisecurity.interce

清单 5 展示 Acegi 的方法安全性拦截器的示例配置:

清单 5. Acegi 的方法安全性拦截器的示例配置

<bean id="privateCatalogSecurityInterceptor" 
 class="org.acegisecurity.intercept.method.aopalliance.MethodSecurityInterceptor"> 
 <property name="authenticationManager"> 
   <ref bean="authenticationManager"/>   
 </property> 
 <property name="accessDecisionManager"> 
   <ref bean="accessDecisionManager"/> 
 </property> 
 <property name="objectDefinitionSource"> 
  <value> 
   sample.PrivateCatalog.getData=ROLE_HEAD_OF_ENGINEERING 
   <!-- Roles required by other beans --> 
  </value> 
 </property> 
</bean> 

清单 5 所示的拦截器配置包含三个需要进行配置的属性,可以保护对 Java bean 的访问:authenticationManager、accessDecisionManager 和 objectDefinitionSource。

回忆一下,您在本系列第 1 部分的 配置身份验证处理过滤器 中曾对 authenticationManager 属性进行了配置。authenticationManager 属性的作用是对用户进行身份验证。

您在本系列的第二篇文章中了解了 accessDecisionManager 属性。这个访问决策管理器负责制定授权决策。在允许对一个安全 bean 进行访问之前,方法安全拦截器使用 authenticationManager 和 accessDecisionManager 属性对用户进行身份验证和授权。

现在查看 清单 5 中配置的 objectDefinitionSource 属性。它类似于第 1 部分中出现的 objectDefinitionSource 属性。以前的 objectDefinitionSource 包含类似于 /protected/* 和 /** 这样的 URL,清单 5 中的 objectDefinitionSource 属性指定类和方法名;例如,sample.PrivateCatalog 是之前执行过代理的类的名称,而 getData 是您希望对其控制用户访问的方法的名字。

上一页  5 6 7 8 9 10 

Tags:使用 Acegi 保护

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