加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Play框架,Scala:按角色验证用户

发布时间:2020-12-16 18:47:00 所属栏目:安全 来源:网络整理
导读:我有用户角色:用户,经理,管理员.我需要在控制器(方法)中对它们进行身份验证.例如,只有管理员可以删除(现在看起来像这样,需要更改只有管理员才有权限): def deleteBook(id: Int) = DBAction { findById(id) match { case Some(entity) = { books.filter(_.i
我有用户角色:用户,经理,管理员.我需要在控制器(方法)中对它们进行身份验证.例如,只有管理员可以删除(现在看起来像这样,需要更改只有管理员才有权限):

def deleteBook(id: Int) = DBAction {
    findById(id) match {
        case Some(entity) => {
            books.filter(_.id === id).delete
            Ok("")
        }
        case None => Ok("")
    }
}

我有很多控制器和方法.我需要在处理请求之前进行身份验证(例如删除书籍).我的路线文件包含:

...
DELETE        /books/:id                  @controllers.Book.deleteBook(id: Int)
...

有些路线只能由管理员和经理访问.有些适用于所有类型的用户.

我目前正在看deadbolt2scala授权模块.

你能推荐在playframework scala中验证多用户的最佳方法吗?

解决方法

我已经设法通过使用 https://github.com/t2v/stackable-controller提供的StackableControllers来实现这一点
基本上,我使用application.conf提供的基本访问控制列表.我首先检查我的请求中是否有用户.如果有,我可以检查他是否有足够的访问权限来执行操作.

这样的特征也可以使用BodyParser合成来实现.我从来没有这样做过,所以别人的建议对你来说可能更好.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读