java死锁2:完全用DB设置控制限制
埃卢
我想或者更确切地说,需要通过数据库设置来控制一些操作和控制器的限制,哪种方法是做这项工作的最佳方式
我的目标是:我需要创建一个解决方案,其中将有很多用户组(存储在数据库中),它们将是完全动态的(创建并从管理面板中删除)。权限应该继承给子组,所以如果用户有角色EditorsChief
,他也可以执行允许所有Editor
的操作。我不能仅仅用@Restrict({"EditorsChief", "Editor"})
注释action/controller,因为它们不存在(应该是通过管理面板动态创建的)
我的第一个想法是使用@Dynamic
控制器和分组限制,使用单独的处理程序,当然需要硬编码其中一些。这还不算太糟——只要稍加注意,就可以设置很好的模式(即通过使用约定命名处理程序:handlerControllerAction
,handlerControllerOtherAction
)
你的想法是什么?我走的方向好吗
# 1 楼答案
最好的方法是使用动态注释,并为每个注释指定一个描述方法功能的不同名称。由于代码中有有限数量的带注释的方法,因此可以将这些名称存储在数据库中(如上文所述,可能会缓存它们以提高性能)
在管理面板中,您可以将这些名称与组、角色或任何内容关联,并基于这些名称执行控制。在我看来,这将是DB中一对多的关系
如果我需要更完整地解释,请告诉我
史蒂夫(Deadbolt的作者)