`
jessdy
  • 浏览: 60392 次
  • 性别: Icon_minigender_1
  • 来自: 上海虹口区
社区版块
存档分类
最新评论

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表示不关心资源。

分享到:
评论
4 楼 jessdy 2007-06-27  
修正了代码,谢谢
3 楼 Hejrcc 2007-06-27  
这样啊?
我来贴一下看:

<!-- AccessDesisionManager -->
<bean id="accessDecisionManager" class="org.acegisecurity.vote.AffirmativeBased">
    <property name="allowIfAllAbstainDecisions" value="false"/>          
    <property name="decisionVoters">
        <ref bean="roleVoter"/>
    </property>
</bean>

<!--RoleVoter's default rolePrefix is "ROLE_"-->
<bean id="roleVoter" class="org.acegisecurity.vote.RoleVoter">
    <property name="rolePrefix" value="ROLE_"/>            
</bean>


好像不会啊, 楼主, 代码放在 code 标签里面就可以了。

2 楼 sg552 2007-06-27  
这是由于XML文件的格式所决定的。

对于Acegi,建议初学者从最简单的官方demo用起。
1 楼 hsy537 2007-06-27  
楼主的帖子好像代码都少一些括号,而且能给点例子代码就更好了

相关推荐

Global site tag (gtag.js) - Google Analytics