使用play2-auth检查身份验证

时间:2016-06-05 22:59:49

标签: scala playframework playframework-2.0

在下面的代码中,有一个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))
  }

1 个答案:

答案 0 :(得分:1)

您可以根据需要通过扩展角色来执行

在您的情况下,您可以执行以下操作:

case object Security Officer extends Role

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

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

为了更好的动态角色授权,您可能想看一下deadbolt:

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

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

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

希望这会有所帮助:)