使用 play2-auth 检查身份验证

Checking authentication with play2-auth

在下面的代码中,有一个 play2-auth 授权检查。在第一种方法中,它检查所需的权限是 NormalUser,在第二种方法中,它检查 Administrator.

在我的例子中,用户创建的角色可能更多(例如 Security Officer)。是否可以让 StackAction 检查系统中动态创建的用户角色?

  def detail(id: Int) = StackAction(AuthorityKey -> NormalUser) { implicit request =>
    val title = "messages detail "
    Ok(html.message.detail(title + id))
  }

  def write = StackAction(AuthorityKey -> Administrator) { implicit request =>
    val title = "write message"
    Ok(html.message.write(title))
  }

您可以根据您的要求通过扩展角色来做到这一点。

对于你的情况,你可以这样做:

case object Security Officer extends Role

您可以在此处自述文件的 用法 部分中看到:

https://github.com/t2v/play2-auth

为了更好地基于动态角色的授权,您可能想看看门栓:

https://deadbolt-scala.readme.io/docs

您还应该了解如何实现基于 activity 的检查 而不是基于角色的授权:

https://lostechies.com/derickbailey/2011/05/24/dont-do-role-based-authorization-checks-do-activity-based-checks/

希望这对您有所帮助:)