问题标签 [declarative-authorization]

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 投票
2 回答
204 浏览

ruby - 声明式授权 - 如何为控制器中的所有操作设置访问权限?

我使用声明式授权gem,在我的authorization_rules.rb中我有以下规则:

是否存在更优雅的方式来设置相应控制器中所有操作的访问权限?我尝试了这些方法

但没有什么对我有用。有没有比盲目地输入每一个动作更好的方法来设置控制器中的所有动作?

0 投票
0 回答
186 浏览

jakarta-ee - Java EE 声明式安全性,从应用程序客户端获取对安全 bean 的引用

关于 2 个问题,我想咨询您。

背景:我编写了一个测试、Java EE 应用程序并添加了声明式安全性。该应用程序部署在 Glassfish 3.1 上。对于单元测试,我将 JUnit 与嵌入式容器一起用于所有具有本地接口的 bean。对于应用程序的入口点 SessionFacde bean,它具有唯一的远程接口,我编写了一个简单的客户端来获取对 SessionFace bean 的引用。我只为 SessionFacade bean 应用了安全注释。

(问题 1:推荐的安全单元测试策略是什么?如果我为 sessionFacade 使用一个简单的应用程序客户端可以吗?(其他(本地)bean 不受影响,因为那里没有应用安全注释。))

问题2:我应该如何从应用程序客户端访问SessionFacde?如果您可以在此处复制 application-client.xml 的一些代码示例并获取对 JNDI 服务的引用,我将非常感激。这样可以节省我很多时间。这个问题类似于Java EE 6 Application Client login下的问题,但我找到了一个解释(http://docs.oracle.com/cd/E18930_01/html/821-2418/beacm.html),它不是真的推荐因为它将安全性负担重回开发人员而不是框架。请参阅以下文字:

“[...]程序化登录允许应用程序开发人员绕过 GlassFish Server 支持的身份验证机制,并将身份验证数据直接提供给安全服务。虽然很灵活,但如果不了解安全问题,则不应使用此功能。

由于这种机制绕过了容器管理的身份验证过程和顺序,因此应用程序开发人员必须非常小心地确保在访问任何受限资源或方法之前建立身份验证。验证登录尝试的状态并相应地更改应用程序的行为也是应用程序开发人员的责任。

程序化登录状态不一定会在会话中持续存在或参与单点登录。[...]"

感谢您到目前为止已阅读。亲切的问候,塔马斯

备注:由于我写了原帖后一直没有回应,我想说回答第二个问题就足够了。这将帮助我继续。谢谢, 塔马斯

0 投票
1 回答
295 浏览

ruby-on-rails-3 - Rails 3 - 如果用户是管理员,如何使用 declarative_authorization 测试?

在文档中,我发现了这部分:

这很好,但我需要测试,如果当前用户是管理员,如果是,那么显示一些文本......像

如果管理员?

我可以从关联中获取此信息,例如:

如果 current_user.role == 0

但这有点肮脏的解决方案......支持声明式授权一些更清洁,更好的方式来做到这一点?

0 投票
1 回答
102 浏览

javascript - 将声明性授权的“without_access_control”与 Cucumber 的 @javascript 一起使用

我的features/support/env.rb文件中有以下内容:

我在功能文件中有这个:

这在一个步骤文件中:

一切运行良好,直到我标记该功能@javascript,然后我收到错误:

谁能告诉我without_access_control在模式下跑步时如何尊重@javascript

我认为问同样问题的另一种方式是如何让声明式授权的内置测试助手without_access_control在什么rack_test时候使用js=true

0 投票
1 回答
280 浏览

ruby-on-rails - 使用声明式授权强制重新加载授权 rules.rb

我正在尝试使用声明式授权进行动态授权,因此我将角色和权限存储在数据库中。

我唯一的问题是授权规则只加载一次。

如何强制声明性授权从控制器操作内部重新加载规则,以便当我为角色设置新权限时,它可以按预期工作?

0 投票
1 回答
150 浏览

ruby-on-rails - 声明式授权:只允许更新某些字段

我正在使用声明式授权来管理应用程序中的用户权限。
我有一个帖子模型,它的所有者可以管理它。

但是,我的模型中也有以下内容:

我想允许一些不是帖子创建者的用户发布它。
我不能只允许他们更新对象,他们不应该能够更改发布状态以外的其他字段。

不过,似乎没有办法只允许编辑模型中的某些字段。

0 投票
2 回答
793 浏览

ruby-on-rails - 使用声明式授权对嵌套资源进行属性检查

我正在尝试添加filter_access_toattribute_check: true但我的模型 ,Assignment是嵌套的Project,我想检查当前用户是否已分配给项目,以便他/她可以更新分配(即所有分配,而不仅仅是特定的分配)该项目。

我有下一个权限:

在我的控制器中:

问题是我无法访问索引页面,因为它找不到分配的 ID。

我的模型是:

0 投票
0 回答
122 浏览

ruby-on-rails-3 - Rails 3 + 声明式授权:嵌套权限

我正在使用声明性授权。假设我有两个名为batch和的模型/控制器timetable_entry。我希望有权访问的用户/batches/:batch_id (batches#show)能够访问/batches/:batch_id/timetable_entries (timetable_entries#index).

到目前为止,我想出了这个:

这没有达到我想要的,因为用户无法访问timetable_entries#index. 我能做些什么?谢谢!

0 投票
1 回答
245 浏览

ruby-on-rails-3 - Rails declarative_authorization project_admin 角色

我正在尝试使用declarative_authorization gem 创建项目管理员和项目协作者角色。

我有一个名为“合作者”的表,它将用户保存到项目映射中。

楷模:

项目

用户

合作者

我需要一些关于为 project_admin 和 project_collaborator 角色定义 dsl 的指导。我想出了以下几点:

感谢任何建议/帮助。
谢谢!

0 投票
1 回答
371 浏览

ruby-on-rails - 如何在 declarative_authorization 中使用 with_permissions_to?

我有下一个模型:

并定义了 2 个权限来管理它:

当我在控制台中尝试时:

它什么都不返回(空),我希望它返回 2 条记录。

我究竟做错了什么?