service中如何获取某个Interceptor下所有的ActionKey

请问service中如何获取某个Interceptor下所有的ActionKey,目前的JFinal.me().getAllActionKeys(); 只能获取系统中所有的ActionKey,看了下JFinal.java 的源码,是不是只能先调用getAllActionKeys(),再遍历调用getAction() 得到所有的Action去判断是否包含这个Interceptor?

评论区

JFinal

2019-07-16 16:55

感觉这个解决方向不对,从来没有人这么绕地使用过

建议你提出具体的需求,寻求更简洁的方案

年轻人

2019-07-16 16:59

@JFinal 我在仿JFinalClub做权限管理,同一个Controller中,有的方法需要计入权限,有的方法不需要计入,被我用Clear清除了;所以我就不想让这部分被清除的方法也计入权限。

JFinal

2019-07-16 17:41

@年轻人 新建一个角色名叫: free, 然后将这些被 Clear 掉的 action 全部添加到 free 这个角色中来

最后,再为所有人默认添加这个 free 角色即可,完全不需要写代码

JFinal

2019-07-16 17:47

其实上面的操作都不需要, 因为 Clear 掉拦截器以后,本身就是不拦截了,权限也就自然放开了

或许你只是需要在一键同步生成 permission 数据的时候,判断 @Clear 注解存在的话,就不生成这条 permission 数据

注意,判断 @Clear 的时候,要判断是针对哪个拦截器,要确保只对针对权限管理拦截器 Clear 的 action 进行处理

年轻人

2019-07-17 16:31

@JFinal 嗯嗯,是这样的,感谢波总抽空回答问题^_^