在下面的代码中,有一个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))
}
答案 0 :(得分:1)
您可以根据需要通过扩展角色来执行。
在您的情况下,您可以执行以下操作:
case object Security Officer extends Role
您可以在自述文件的用法部分中看到:
https://github.com/t2v/play2-auth
为了更好的动态角色授权,您可能想看一下deadbolt:
https://deadbolt-scala.readme.io/docs
您还应该了解如何实施基于活动的检查而不是基于角色的授权:
希望这会有所帮助:)