FilterSecurityInterceptor can't match URL parameters

FilterSecurityInterceptor can't match URL parameters
2008年04月08日 星期二 下午 7:25

      对于这个问题,一直困扰了我很久 ,之前对acegi的objectDefinitionSource的表达式一直使用Apache Ant Paths的方式进行处理,这种处理方式对含有“=”的表达式不能解析,这样导致在对url的控制力度上只能停留在Action层面,对于Action的parameters不能进行权限控制。
      后来看过acegi的源代码,发现
Acegi并未为objectDefinitionSource显式的注册编辑器,通过java.beans下的 PropertyEditorManager, 根据“类型名称+Editor”来查找属性相应的编辑器机制,查到相应的编辑器为FilterInvocationDefinitionSourceEditor,Acegi实例化了FilterInvocationDefinitionSourceEditor,并调用它完成后续的读取配置并给属性赋值的工作。在PropertyEditorSupport的setAsText方法中可以通过正则表达式方式匹配。所以在对前面遇到的问题上可以通过使用正则表达式规则处理所有的表达式。将上面的“=”符号替换为“\x3D”即可。这样就可以控制到Action的parameters层面,再加上MethodSecurityInterceptor的控制,已经可以实现几乎所有的权限控制。
     希望以上能对同样为此问题烦恼的java developer有帮助!^_^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值