问题标签 [deadbolt-2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
99 浏览

permissions - 死锁中模型实例(对象)的动态权限

我们有一个系统,用户将他们的创作(模型实例)存储在数据库中。用户可以决定与其他用户或用户组共享他们的创作。

我的想法是将创建的 ID 与死锁中的权限相关联,并将该权限与主题相关联。

做这个的最好方式是什么?我什至应该为此目的使用死锁,还是有其他框架/模式可以实现?

0 投票
1 回答
914 浏览

scala - Play Framework中的Silhouette和Deadbolt 2有什么区别

我们在 Play Framework 中有两个著名的身份验证和授权插件,SilhouetteDeadbolt 2。我的问题是这两个插件有什么区别?在什么情况下我们应该使用 Silhouette 或 Deadbolt 2?

0 投票
0 回答
1067 浏览

java - play.core.server.netty.PlayDefaultUpstreamHandler - 无法调用操作 java.lang.NullPointerException: null

当我想使用 PlayJongo 在 mongodb 中填充数据库时出现错误。

我收到了这个错误

这是我的 build.sbt

这是我的 application.conf

奇怪的是,我得到了错误,但数据仍然更新到数据库中。但我认为数据已损坏,因为我无法使用锁舌处理数据。

我错过了什么吗?也许在配置中,或者我执行错误?

0 投票
1 回答
206 浏览

java - Deadbolt 2 和 Play 2.4.x:不可访问页面上的空指针异常

我正在尝试使用 Deadbolt 2 在 Play Framework 2.4.x 中实现一个简单的认证系统。

我遵循了 Chaloner 编写的本指南,并实现了我的 deadbolt 处理程序,如您在此处看到的:

我的主要控制器是这样的:

当我尝试访问 action 呈现的页面时出现问题denyAccess。在这种情况下,我在页面上得到一个 NullPointerException,没有我可以读取的堆栈跟踪,如下图所示。

在此处输入图像描述

即使我尝试访问控制器拒绝访问,似乎也从未调用过 onAuthFailure 方法。

你可以在我的 github 页面上看到完整的项目,它很短,我认为它可以帮助你理解问题。

谢谢您的帮助。

0 投票
1 回答
787 浏览

java - Play 2.4 和 Deadbolt 安装

所以我仍然在掌握 Play 2.4 我想使用 Deadbolt 进行身份验证,但它似乎没有解决任何 deadbolt 类。

在我的 build.sbt 中,

在我的 play.plugins 中,

在我的 application.conf 中,

LoginHandler 类,

它没有解决任何死锁包。

0 投票
1 回答
363 浏览

scala - deadbolt2 和隐式请求

我正在尝试将 Deadbolt2 集成到我的游戏框架 2.4 应用程序中。

我的控制器中有以下代码

我得到了错误missing parameter type。我正在关注死栓示例,这对我有很大帮助,但我不知道如何将隐式请求传递给行动。

我的模板是这样开始的:

直接使用Action没有deadbolt.SubjectNotPresent()效果很好。

0 投票
1 回答
1038 浏览

scala - 如何集成 Play(Web 框架)、Deadbolt(授权)和 Slick(数据库访问)

简而言之:我的应用程序使用Play web 框架版本 2.5.1。我想使用Deadbolt 授权系统Slick来访问我数据库中的用户授权信息。我怎样才能做到这一点? Deadbolt是专门为Play制作的,Play自带了开箱即用的Slick ,所以即使不是很容易,它也应该是可能的。

基于Deadbolt 文档中的“Integrating Deadbolt”,我扩展了这个DeadboltHandler特性。它的抽象getSubject()方法似乎是进行数据库查询的地方(文档如是说,但没有任何示例)。该方法接收作为参数 anAuthenticatedRequest并返回Subject,基本上是经过身份验证的用户 ID,以及角色和权限(授权)。

我被卡住了,因为虽然 Play 带有Slick 集成,但文档只描述了如何在 Play 控制器中使用它。(注意我想使用依赖注入来做到这一点,因为不推荐使用全局查找并且容易出错

我成功地在我的控制器中使用Deadbolt来限制对某些资源的访问,但控制器似乎是Deadbolt对授权详细信息进行数据库查询的错误位置(如果是,那DeadboltHandler将是无目的的)。控制器构造函数签名定义类似于(注意控制器访问存储 Web 内容的默认数据库而不是授权数据库):

这样可行。但是,类似地注释DeadboltHandler扩展@Inject无法提供对数据库的Slick访问:

结果是

显然,Play为控制器做了一些特殊的事情,以便@Inject注释工作,我缺乏理解。我认为它本质上是使用注入器而不是new关键字构造控制器,但是我通过Play源代码的搜索未能告诉我到底发生了什么。如果我能找到它,也许我可以模仿这种技术来构建一个DeadboltHandler.

我看到 play 带有诸如GuiceInjectorGuiceInjectorBuilder 之类的类,听起来好像它们可能是解决方案的一部分,但是我的实验还没有告诉我如何使用它们,以及是否有任何关于如何在特定中使用它们的文档扩展的上下文DeadboldHandler,我想念它。

我发现了这个先前的问题:Scala (Play 2.4.x) How to call a class with @inject() annotation,这似乎很重要。不幸的是,尽管原始海报有六条后续评论,但仍未得到答复。我觉得如果我有这个问题的答案,我就会有这个问题的答案,尽管我的问题非常具体:如何相互使用PlayDeadboltSlick(在Scala中)。

最让我困惑的是,这似乎应该足够普遍,以至于它要么在文档中被提及,要么已经在 SO 上被询问过。我未能找到任何此类参考资料通常意味着我正在做一些非常独特的错误,以至于没有人有机会谈论它。似乎它应该足够简单,我乐观地希望我错过了一些非常基本的东西,我期待着某个善良的灵魂告诉我这些知识。

0 投票
2 回答
435 浏览

scala - 如何使用 deadbolt2 DeadboltActions 测试控制器,或者是否有另一个框架可以轻松实现这一点?

我正在使用播放!2.4 使用 Deadbolt2 进行授权。但是,由于我引入了授权规则,我无法为我的控制器编写成功的测试。举个例子:

我在测试中使用 specs2。我的测试看起来像这样的atm:

如何以可以指定允许用户访问的方式模拟 deadboltActions?

还有其他方法吗?也许通过提供不同的 DeadboltHandler?似乎很明显这将是要走的路,我只是似乎无法弄清楚,而且那里没有很多 Deadbolt2 示例(至少对于 scala 而言)。

或者,更极端的是,任何其他授权框架都可以很好地与 scala play 配合使用,并且允许将安全性作为一个横切关注点来处理,而不会污染控制器?由于这个原因,Deadbolt2 太有限了,但老实说我找不到更好的授权框架(除非我自己写)。

0 投票
0 回答
191 浏览

java - Deadbolt Java 集成问题:AbstractDeadboltAction.call 中的 NullPointerException

我正在尝试将 Deadbolt 集成到我的应用程序中。我遇到了这个问题,不知道该怎么办。当我转到带有注释的受限页面时:@Restrict(@Group("admin")) 程序抛出以下异常:

我的 DeadboltHandler 实现如下所示:

你能帮我解决这个问题吗?如果您需要更多信息,请告诉我。我正在使用 2.5.0 版本的 play 和 deadbolt。

谢谢, 维塔利

0 投票
1 回答
316 浏览

playframework-2.0 - 在注册期间为用户分配角色 - 使用锁舌进行身份验证

我为我的项目创建了 2 个自定义角色。我想在注册过程中为用户分配一个角色。如何在注册期间默认为用户分配角色。

另外,如果我有 2 个不同的角色,如何创建 2 个注册表单。对于不同类型的角色,我需要 2 种类型的注册。