问题标签 [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 投票
4 回答
1038 浏览

ruby-on-rails - 功能测试期间身份验证失败

我有一个正在开发的 Ruby on Rails 应用程序,但我的功能测试遇到了一些问题。特别是,当我通过具有类似凭据(相同角色等)的用户登录时,我在测试期间不断被拒绝访问可以在浏览器中访问的页面。例如,下面是控制器测试中的代码:

(显然,这些并不是我真正想要检查的所有断言,但它们证明了正在发生的事情。)

对于它的价值,上述测试失败并引发以下异常:

同样,正如我所说,当您实际运行应用程序时,一切正常,它只是让测试工作(尽管也许应用程序只是偶然工作,谁知道呢?)。

0 投票
1 回答
36 浏览

ruby-on-rails-3 - 为什么我认为我公开的视图仍然提示我登录?- Rails3 + decl_auth

这是我的authorization_rules.rb

这是我的paying_users.rb控制器:

这是我routes.rb的,反正相关部分:

当我转到它时,myapp.com/paying_users它仍然会重定向到我的登录页面,即使我不希望它这样做。

我该如何解决?

使用 declarative_authorization 处理授权。

0 投票
1 回答
163 浏览

ruby-on-rails - 在 Rails 应用程序中拒绝访客访问

我想完全锁定 Rails 应用程序,以便拒绝所有未明确授权给特定用户角色的路由 (403)。

我继承了这个应用程序,所以我对框架的理解很差,但目前看来我正好相反:除非我明确关闭它,否则一切都是开放的。

我有一个 authorization_rules.rb 文件,我没有给来宾角色任何权限,但我仍然可以在不登录的情况下访问页面。我想我可以逐页进入并确保页面需要授权(filter_access_to ?) ,但我可能会错过一个。我怎样才能关闭一切,然后只在我明确允许的地方打开访问?

这是使用 Rails 2.3.5。

0 投票
1 回答
135 浏览

authorization - 为 WIF 创建一个自定义授权提供程序,允许针对唯一项目进行身份验证

我们正在实施联合身份管理,并且存在用户需要针对唯一标识的项目进行身份验证的场景。例如,Bob 可能对记录 12345、34444、23443 和 23443 具有读取权限,而 Jane 可能对记录 12345、34444 和 23443 具有读取/写入权限以及对记录 56445 的读取权限。

我有两个问题:

  1. 假设某人可以访问一百或一千个单独且唯一的记录。使用基于声明的安全性,我了解传入的安全令牌将包含所有这些声明。代币的大小会成为问题吗?

  2. 我没有看到很多关于创建用于管理授权的管理系统的指导,即在我们的案例中,将用户分配给经过身份验证的记录。我看到了很多关于尽可能使授权声明性的建议,但没有太多关于在不可能时该怎么做的建议。

非常感谢任何建议或方向。

0 投票
5 回答
1491 浏览

ruby-on-rails - 为什么 declarative_authorization 会破坏我的控制器的功能?- 导轨 3

我有一个Coupons有两个动作的控制器。

在我的视图中调用生成操作,如下所示:

我的config/authorization_rules.rb样子是这样的:

以上所有抛出的错误都是这样的:

但是,一旦我将其更改filter_resource_accessfilter_access_to :all, :except => :generate它就不会再给我错误并且有点工作。

即它会生成一些我正在寻找的优惠券代码,但它不包括视图输出中的plan_id 编号或天数。

这是为什么?我究竟做错了什么?

编辑1:顺便说一句,它确实限制了正确的人......即只有指定的角色才能查看coupons index view. 所以过滤器部分起作用。

0 投票
1 回答
500 浏览

ruby-on-rails-3 - declarative_authorization Authorization.current_user 错误

我已经设置了 authlogic 并想使用 declarative_authorization。在 Ryan Bates 的 railcast #188 中,他使用 before_filter {|c| Authorization.current_user = c.current_user} If I do the same I get a error:

current_user 方法在应用程序控制器中并且是私有的(如在 Authlogic 设置示例中),如果我将其设为公开,则此方法有效。如果我只是说 current_user (current_user 方法也是一个助手)而不是之前过滤器块中的 c.current_user ,它也可以工作。

那么如果我这样做真的可以before_filter {Authorization.current_user = current_user}吗?

0 投票
0 回答
242 浏览

ruby-on-rails - Rails 中的对象级授权数据库结构

我正在编写一个 Rails 应用程序,它需要在对象级别进行非常细粒度的授权。其他系统使用诸如 acl9 或 declarative_authorization 之类的插件,但我想实现自己的。我想到了以下数据库结构,想知道这是否会偏离 Rails 的最佳实践。

http://www.pastie.org/2496489

欢迎任何指针/建议或潜在问题。

0 投票
1 回答
223 浏览

ruby-on-rails - Rails 声明式身份验证失败

我们在 CREATE 和 UPDATE 上的声明式身份验证出现错误。我们不确定为什么,因为在错误中它显示没有用户经过身份验证,并且会话以某种方式丢失:

`Authorization::NotAuthorized in CartypesController#update

没有为 # (角色 [:guest]、特权 [:update]、上下文 :cartypes)找到匹配的更新规则。`

角色“backoffice”在 authentication_controller.rb 中具有权限:has_permission_on :cartypes, :to => [:index, :show, :new, :create, :edit, :update, :destroy, :delete]

在 stackoverflow 中有一个类似的问题:Link to Stackoverflow Question

我们是 Rails 新手,第一次尝试过,其他显示和列表工作正常..(GET 操作)

任何帮助表示赞赏...谢谢。

编辑:我们能够解决这个问题,因为我们在讨论模型安全性时发现关于“声明性授权”的文档不是那么清楚!如果您仔细阅读,在使用模型安全性时需要将:## Heading ##Authorization.current_user 设置为请求的用户(在 application_controller.rb 中)。对于 rails-n00bs 可能不太清楚......

0 投票
2 回答
274 浏览

c# - PageLoad 的 PrincipalPermission

我是使用 Asp.NET 成员功能的新手,我想知道使用如下代码拒绝访问整个页面是否是一个好习惯:

我怀疑这不是做事的好方法,但我想知道为什么!

谢谢。

0 投票
1 回答
581 浏览

ruby-on-rails - Rails 可配置的每个角色/crud 操作的授权

我正在使用一个已经使用 declarative_authorization 来处理用户权限的 Rails 2.3 应用程序。每个用户属于一个组(没有花哨的角色),对某些模型具有权限,主要是常规的 CRUD 操作,但也有一些特殊的操作。这一切都适用于 declarative_authorization,它通常是开箱即用的模式。

我们现在希望允许管理员针对模型类型设置特定用户组的权限。例如,我们创建一个新组 Foo,为其分配一些用户,然后用复选框决定组 Foo 中的用户是否可以 c/r/u/d 模型 Bar 的对象。

我以前用过acl9,我想我知道我怎么能做到这一点。我最近一直是CanCan的粉丝,但我明白如何轻松做到这一点。如果 declarative_authorization 可以做到这一点,我会坚持下去,但我准备硬着头皮切换。

什么插件是实现这一目标的最佳方式?有没有办法让 declarative_authorization 完成这项工作?使用 CanCan 的优雅方式?我应该注意什么问题,例如数据库性能?

我可以说服我将应用程序升级到 Rails 3.1,但我更愿意找到与 2.3 兼容的解决方案。

我见过一些类似的问题,但没有令人满意的答案 Rails Dynamic Role-Based Authorization plugin?

而这个,对于cancan https://github.com/ryanb/cancan/wiki/Role-Based-Authorization