Play Framework Authorization Java

时间:2013-11-18 17:59:59

标签: java playframework playframework-2.2 play-authenticate deadbolt

是否有人知道是否有允许您在Java中动态授权页面的播放框架模块?

我正在使用play-authenticate / deadbolt模块(http://joscha.github.io/play-authenticate/https://github.com/schaloner/deadbolt-2)作为身份验证/授权机制。但是,deadbolt没有关于如何实现每页或每个资源的授权的直接示例。它确实能够创建动态约束,但文档是有限的,并且不会告诉您是否可以使用模型或其他内容创建每页授权。

我正在考虑创建一个模型“页面”,它允许您动态跟踪每页的所有权限。还有更好的方法吗?

感谢。

1 个答案:

答案 0 :(得分:2)

您可以通过将页面内容包装在动态标记中来在Deadbolt中执行此操作。为标记指定的名称映射到DynamicResourceHandler,然后可以在DB中查找当前用户是否可以访问该页面。

例如,您的视图将如下所示:

@(handler: my.app.MyDynamicResourceHandler)

@dynamic("handlerName", "pageKey", handler) {
  Your page content goes here
}

处理程序的isAllowed方法将按照

的方式实现
public boolean isAllowed(String name,
                         String meta,
                         DeadboltHandler deadboltHandler,
                         Http.Context context)
{
    Subject subject = deadboltHandler.getSubject();
    result = // check your user's access to the page key (provided as the meta argument)
    return result;
}

目前正在改进文档,同时您可以在http://deadbolt-2-java.herokuapp.com/#template-dynamic

看到更多示例