问题标签 [rack-middleware]
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.
ruby-on-rails-4 - rack 在 rails4 中没有被识别为命令
我有一个 rails4 项目gem 'rails', '4.0.2'
,并且我在
config/initializers/request_timer.rb
Ryan bates截屏视频中创建了一个自定义机架模块
但是当我rack middleware
在我的项目中运行命令时,它说
-bash: rack: command not found
我没有将rack
gem 添加到我的 Gemfile 中,我相信它应该默认带有 rails。
以下是我的 Gemfile
任何帮助,将不胜感激
ruby-on-rails-4 - 向 Rails 4 添加自定义中间件
我有一个 Rails 4 示例项目(博客),并且我创建了一个名为“request_timer”的简单中间件config/initializers/request_timer.rb
我config/application.rb
以两种方式添加了我的中间件
1 ) 添加为常数
这样,当我尝试运行我的 rails 应用程序时,我得到了错误
2)然后我将中间件添加为字符串
这样,它允许我运行 rails 服务器,但是当我访问时localhost:3000
,它会出错说
原因是什么?我正在使用Rails4.0.2
和.rack-1.5.2
ruby 2.0.0p247
basic-authentication - 使用 Rack::Attack 限制基本身份验证
我已经gem rack-attack
为我的应用程序设置了。我想开始限制基于 IP 的基本身份验证。
我的基本身份验证代码设置如下:
我想我的机架攻击将包含以下内容:
ruby-on-rails - 机架中间件 全局中间件
有人可以解释一下这种和平的代码是如何工作的,尤其是日志过滤器部分。我想log_attributes_filter
从我调用的机架文件中分配,该use MongodbLogger::RackMiddleware
怎么做?
在我简单地将它用作之前use MongodbLogger::RackMiddleware
,但现在我想过滤一些参数,我应该如何正确分配@@log_attributes_filter
?
ruby-on-rails - 带有子域登录管理的 Rails 4 多租户
场景:使用子域并设计的多租户 Rails 应用程序问题:我希望用户能够登录到 mydomain.com,然后作为登录用户转发到他们自己的 subdomain1.mydomain.com 地址。现在他们只能直接登录到他们自己的子域。
我是一个相对的 Rails 新手,我找不到一个简单的解决方案(尽管似乎必须有一个)。理想情况下,我希望 mydomain.com 和 subdomain1.mydomain.com 共享一个 cookie,但我的技能不适合编写自定义中间件。显然,由于它是多租户的,我无法在所有子域中共享一个会话。坚持了几天,并好奇是否有一个简单的解决方案(例如 config.session_store 域设置)在我开始查看 OAuth 或其他更繁琐的解决方案之前我缺少。任何帮助将不胜感激!
编辑:当然,我只是在发布后才发现这个。在注册 Rails 和 Devise 后,将用户登录到他们的子域。将尝试 config.session_store 域: :all 并在过滤器推荐之前发布任何详细信息,如果它不起作用,至少看起来是个好主意。
编辑:适用于我的特定设计的解决方案与子域设置:
基本上,我在登录时使用 session[:subdomain] 在会话中设置子域,并使用它将会话范围限定为当前用户。否则,当域在 session_store 中设置为 :all 时,它会破坏范围。如果用户未被授权,它会通过 request.protocol(http:// 或 https://)+request.domain 重定向将他们重定向到公共主页。简单的!现在,用户可以在同一个会话中在基本域和他们的子域之间移动。
ruby-on-rails - 除非我们的 Rails 应用程序完全是 API,否则 ActionController::API 是否有好处?
如果我的 Rails 应用程序永远只是一个 API,那么我不是 100%。
考虑到这一点,我保留了 ActionController:
class ApplicationController < ActionController::Base
并选择创建一个 api 控制器,
class ApiController < ActionController::API
.
现在,我没有更改我application.rb
的config.api_only
.
话虽如此,我确实知道,如果我只构建一个 API,它可能会快 40%,rails-api
因为它减少了堆栈中的中间件。我仍然通过继承来获得这种好处ActionController::API
吗?如果我没有这 40% 的提升,那么这样做有什么好处吗?
ruby - Rails - 从中间件呈现静态 html 页面
昨天我的应用程序被 yandex bot 访问了一个无效的 URL
并且对于此应用程序正在引发错误
每当出现无效字符错误时,我需要呈现状态为 400 而不是 404 的 400.html 静态页面。我遵循了这个问题和rack-robustness gem的解决方案,但它没有达到目的,因为它显示 404 或重定向到特定页面。
我已将以下内容添加到/config/application.rb
这是我的中间件 handle_invalid_percent_encoding.rb
需要“机架”
类 HandleInvalidPercentEncoding
结尾
PS 只有当参数错误是无效编码时,我才需要呈现错误的请求错误。
ruby - 如何在 Sinatra 中禁用中间件?
我正在使用 Sinatra 制作安全的 Web 服务。它需要 SSL 和随每个请求一起发送的安全令牌。因此,我制作了一个简单的中间件,用于检查每个传入请求是否有安全令牌,如果该请求丢失或无效,则拒绝该请求。
然而,这显然使我的大型验证测试套件失败,因为它们是在我为 Web 服务添加安全性之前编写的。
有没有办法在启用中间件后简单地禁用它?这样我的整个测试套件仍然可以运行,并且我可以单独测试安全中间件。
ruby-on-rails-4 - Rack::ShowExceptions 在生产 Rails 4.0.4 中启用
遇到一个奇怪的问题,Rack::ShowExceptions
在生产环境中为我的 rails 4.0.4 应用程序呈现详细的异常。添加一个config.middleware.delete(Rack::ShowExceptions)
toconfig/application.rb
仍然设法导致Rack::ShowExceptions
模板被渲染,因此我希望有一些中间件依赖潜伏。
%
例如,在请求中使用未转义的应用程序POST
会导致Rack::ShowExceptions
呈现模板:
示例无效POST
请求:
机架中间件:
如果这是相关的,config.exceptions_add = self.routes
我们有。config/application.rb
我已经仔细阅读了 ActionPack CHANGELOG,但这个问题很可能已在以后的版本中得到修复!如果是这样,我将不胜感激。
ruby-on-rails - RoR - 哪个是首选 - 机架中间件或有源控制器过滤器?
对于最新版本的 Ruby on Rails(在提出此问题时为 4),实现修改请求/响应的代码(例如身份验证机制)的首选方法是什么。我看到许多网站和教程都在提倡Rack 中间件,而似乎可以通过Action Controller 过滤器方法实现相同的功能。
除了谈论首选方法之外,是否可以提供每种方法的优缺点比较?在我最初的调查中,动作控制器过滤器方法似乎更紧密地集成到 RoR 应用程序中,这样您就可以绕过在某些控制器端点上运行某些过滤器,而中间件似乎无法拥有该级别的控制。像这样的细节会很棒。谢谢!