java – Deadbolt – Play Framework – 如何使用控制器中的参数检查@RestrictedResource?

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

例如,在我看来,我有它,它运作良好:

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

但是在我的控制器中,我只能检查资源名称,但是我找不到在我的RestrictedResourcesHandler中检查它的方法,并通过了domainid.

我正在寻找一个类似的解决方案:

@RestrictedResource(name = {"Domain"}, params = {domainid})
public static void showDomain(String domainid)
{
}

提前致谢

解决方法:

在注释中不可能有动态信息,但您可以使用params在请求中定义传入值的名称.但是,此信息目前未传递到处理程序中,因为它需要映射.虽然您可以从restrictedResource标记传递参数映射,但您无法从注释中执行此操作,因此将空映射传递到处理程序中.

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

史蒂夫(Deadbolt的作者)

上一篇:python – App Engine的用户名和密码登录?


下一篇:Redis 3.0.5 集群的命令、使用、维护