论坛首页 入门讨论版 Spring

acegi的url权限控制--〉登陆用户就可以访问的资源怎么定义?

浏览 294 次
该帖已经被评为新手帖
作者 正文
时间:2008-05-14
我有 4个角色 :管理员,医生,科长,院长, 一个用户登录后 必定属于其中之一。


如果用户没有登陆 那他应该属于匿名用户,他的角色自动为 :规定的 OA_ANONYMOUS;


因为是这样:
    <bean id="anonymousProcessingFilter" class="org.acegisecurity.providers.anonymous.AnonymousProcessingFilter">
        <property name="key" value="anonymous"/>
        <property name="userAttribute" value="anonymous,OA_ANONYMOUS"/>
    </bean>




我现在问题 是 :

在 配置url权限时:

    <bean id="filterInvocationInterceptor" class="org.acegisecurity.intercept.web.FilterSecurityInterceptor">
        <property name="authenticationManager" ref="authenticationManager"/>
        <property name="accessDecisionManager" ref="accessDecisionManager"/>
        <property name="objectDefinitionSource">
            <value>
                CONVERT_URL_TO_UPPERCASE_BEFORE_COMPARISON
                PATTERN_TYPE_APACHE_ANT
                /module/basic_manage/*_*.htm*=OA_ADMIN
                /module/person_manage/*_*.htm*=OA_ADMIN,OA_DOCTOR,OA_KEZHANG,OA_YUANZHANG
            </value>
        </property>
    </bean>


就是 /module/person_manage/*_*.htm* 资源 是 所有登陆用户都可以访问的 ,也就是 非匿名用户 都可以访问的。

我不知道 这里 怎么表示 !OA_ANONYMOUS (非匿名) , 现在这种方法是 把 所有角色都列出来,显然很笨,如果新增了角色,还要到这里修改。


第2个问题 :

<property name="userAttribute" value="anonymous,OA_ANONYMOUS"/>


这里为什么要 配置 2个 一个 是 :anonymous 另一个是 OA_ANONYMOUS 我是参考 appfuse改的。

希望 有识之士 指点一下。感谢。
   
时间:2008-05-14
自己写个filter,拦截需要保护的url,并且配置在acegi的filter之后进行过滤
检查session中的身份信息,如果是anonymous,则转到登录页面

第二个问题:anonymous是未登录用户的用户名,OA_ANONYMOUS是未登录用户的角色
   
2 请登录后投票
时间:2008-05-14
自己写个interceptor,加到acegi的filterchain里,就是二楼说的
   
0 请登录后投票
时间:2008-05-15
非常感谢楼上2位的回答。
   
0 请登录后投票
时间:2008-07-14
不知道是不是页面资源控制一般都是用Acegi作?
能不能将RUL也视为资源一起纳入RBAC的管理
   
0 请登录后投票
论坛首页 入门讨论版 Spring

跳转论坛:
JavaEye推荐