【问题标题】:Play Framework Authorization JavaPlay 框架授权 Java
【发布时间】:2013-11-18 17:59:58
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

  • 为了澄清更多,我想把页面名称和位置放在数据库中,以便管理员可以动态添加/删除特定页面的权限/角色

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


【解决方案1】:

您可以在 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查看更多示例

【讨论】:

  • 谢谢!我试试看。
猜你喜欢
  • 2012-04-23
  • 1970-01-01
  • 2017-07-11
  • 2017-08-02
  • 1970-01-01
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多