使用Deadbolt的模块,我们可以在视图中使用资源名称和参数来检查strictedResource。

例如,在我看来,我拥有它,并且效果很好:

#{deadbolt.restrictedResource resourceKeys:['Domain'] , resourceParameters:['domainid':domain.id]}
   <li><a href="@{Admin.showDomain(domain.id)}">${domain.title}</a></li>
#{/deadbolt.restrictedResource}

但是在我的控制器中,我只能检查资源名称,但找不到在将domainid传递给我的RestrictedResourcesHandler中进行检查的方法。

我正在寻找一种解决方案来做这样的事情:
@RestrictedResource(name = {"Domain"}, params = {domainid})
public static void showDomain(String domainid)
{
}

提前致谢

最佳答案

注释中不可能包含动态信息,但是您可以使用params定义请求中传入值的名称。但是,此信息目前尚未传递到处理程序中,因为它需要映射。尽管您可以从strictedResource标记中传递参数映射,但是您不能从注释中执行此操作,因此会将空映射传递到处理程序中。

最好的方法是从请求对象中提取一个众所周知的参数名称。我需要重新考虑在不破坏向后兼容性的情况下的最佳方法。

史蒂夫(Deadbolt的作者)

09-25 20:37