Acegi框架总结(二)

配置完了Acegi的身份验证,接着就要用Acegi来控制访问了

Acegi通过投票管理器来决定是否有访问该资源的权限,投票方式有三种:

一票通过制(AffirmativeBased):有一票通过即可以访问该资源
全票通过制(ConsensusBased):只有全部通过才能访问资源
一票否决制(UnanimousBased):没有拒绝票时允许访问

配置如下:

xml 代码
  1. <!-- 访问决策投票管理 -->  
  2.     <bean id="accessDecisionManager"  
  3.         class="org.acegisecurity.vote.AffirmativeBased">  
  4.         <property name="allowIfAllAbstainDecisions" value="false" />  
  5.         <property name="decisionVoters">  
  6.             <list>  
  7.                 <ref bean="roleVoter" />  
  8.                 <bean class="org.acegisecurity.vote.AuthenticatedVoter" />  
  9.             </list>  
  10.         </property>  
  11.     </bean>  

其中allowIfAllAbstainDecisions代表了弃权票的解决方式为:所有投票皆弃权,不允许访问

xml 代码
  1. <bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">  
  2.     <property name="rolePrefix">  
  3.         <value>AUTH_</value>  
  4.     </property>  
  5. </bean>  

投票管理器实现了AccessDecisionVoter接口,你可以自己编写投票器

其中常量ACCESS_GRANTED表示允许访问资源、ACCESS_DENIED表示拒绝访问资源,ACCESS_ABSTAIN表示不关心资源。

你可能感兴趣的:(框架,bean,配置管理,Access,Acegi)