acegi中投票的概念

Acegi中投票策略分为三种
1:[b][b]org.acegisecurity.vote.AffirmativeBased
[/b][/b]只要有一票投赞成,即可通过
2:[b][b]org.acegisecurity.vote.ConsensusBased[/b][/b]
需要大多数的投票,方可通过
3:[b][b]org.acegisecurity.vote.UnanimousBased[/b][/b]

 

以上摘自一位道友的,以下是个人的一些体会:
感觉acegi定义个投票策略,就是为了指定在上面的objectDefinitionSource里配置的权限的处理方式:
1,用户属于其中一个权限组即通过认证;
2,用户必须符合所用的用户组;
3,弃权票的处理方式;

应用,首先我们来看一下acegi自带的例子
 [bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor"]
        [property name="authenticationManager" ref="authenticationManager"/]
        [property name="accessDecisionManager"]
            [bean class="org.acegisecurity.vote.AffirmativeBased"]
                [property name="allowIfAllAbstainDecisions" value="false"/]
                [property name="decisionVoters"]
                    [list]
                        [bean class="org.acegisecurity.vote.RoleVoter"/]
                        [bean class="org.acegisecurity.vote.AuthenticatedVoter"/]
                    [/list]
                [/property]
            [/bean]
        [/property]
        [property name="objectDefinitionSource"]
            [value]
                CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT
                /secure/extreme/**=ROLE_SUPERVISOR
                /secure/**=IS_AUTHENTICATED_REMEMBERED
                /**=IS_AUTHENTICATED_ANONYMOUSLY
            [/value]
        [/property]
[/bean]
这里采用的投票策略是org.acegisecurity.vote.AffirmativeBased,及只有有一票赞成就通过

你可能感兴趣的:(apache,bean,Web,ant,Acegi)