访问控制、Scala 中的权利、Play 框架

Posted

技术标签:

【中文标题】访问控制、Scala 中的权利、Play 框架【英文标题】:Access Control, Entitlements in Scala, Play Framework 【发布时间】:2014-04-28 21:20:11 【问题描述】:

必须在当前项目中构建权限、访问控制模块,其中 ACL 进入详细级别,例如

Role1 can view Page1 and add ALL the fields on Page1
Role2 can view page1 and can only view 4 fields on page1
Role3 can't view page1

那是为了授权。还具有注册/身份验证要求。自定义注册将有一些新用户将填写的字段,如果它已经是注册用户,则用户将使用登录页面。游戏框架中提到了 SecureSocial,但它不灵活(至少用于制作自定义注册表等)

过去(在处理 Java 项目时)使用 crosslogix(我认为 Oracle Entitlement Server 是它的前身)来布局每个角色、每个资源等的详细权利。是否有任何 OSS 替代品或您推荐的其他库/框架在 Scala 中,Play Framework 领域?

【问题讨论】:

【参考方案1】:

SecureSocial 可以选择提供自定义注册页面:

http://securesocial.ws/guide/views-customization.html

Deadbolt 2 处理它的授权部分:

https://github.com/schaloner/deadbolt-2

这里有一个使用 Slick 2.0 的示例应用程序:

https://github.com/lunatech-labs/lunatech-securesocial-poc

【讨论】:

Deadbolt 2 看起来很有用。遗憾的是,此时 Scala 文档严重缺失。但至少现场的 Scala 文档是存在的,并且显示了如何开始使用它。【参考方案2】:

考虑使用可扩展访问控制标记语言 XACML。它定义了一种基于属性的策略语言,可以轻松实现您在此处列出的方案。

有几种可用的实现。您提到了使用旧版本 XACML 的 OES。在 OSS 世界中,请查看 SunXACML、Heras AF、ForgeRock 和 WSO2。

在供应商空间,查看Axiomatics(免责声明:这是我工作的公司)。

【讨论】:

以上是关于访问控制、Scala 中的权利、Play 框架的主要内容,如果未能解决你的问题,请参考以下文章

Scala Play2 路由器/控制器测试,无需访问数据库

如何使用 Play! 访问开发数据库!框架?

如何搭建scala的play框架

Scala play框架中@Singleton的使用

将 bootstrap.css 文件链接到 Play 框架中的 scala.html 页面

在scala播放框架异步操作中组合/链接未来