浏览 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改的。 希望 有识之士 指点一下。感谢。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2008-05-14
自己写个filter,拦截需要保护的url,并且配置在acegi的filter之后进行过滤
检查session中的身份信息,如果是anonymous,则转到登录页面 第二个问题:anonymous是未登录用户的用户名,OA_ANONYMOUS是未登录用户的角色 |
|
| 返回顶楼 | |
|
时间:2008-05-14
自己写个interceptor,加到acegi的filterchain里,就是二楼说的
|
|
| 返回顶楼 | |
|
时间:2008-05-15
非常感谢楼上2位的回答。
|
|
| 返回顶楼 | |
|
时间:2008-07-14
不知道是不是页面资源控制一般都是用Acegi作?
能不能将RUL也视为资源一起纳入RBAC的管理 |
|
| 返回顶楼 | |







