机架中间件insert_before不按预期工作

时间:2017-02-09 10:50:50

标签: ruby-on-rails ruby-on-rails-4 rack

我正在尝试在我正在开发的Rails 4项目中使用SslEnforcer机架中间件。在the documentation of the gem中,据说:

  

应在SslEnforcer处理标头之前设置Cookie,但由于中间件调用链,应在ActionDispatch :: Cookies之前插入Rack :: SslEnforcer。

所以我按照那里描述的说明操作,并在我的application.rb文件中使用它:

config.middleware.insert_before ActionDispatch::Cookies, Rack::SslEnforcer

但是,当我运行rake middleware时,我仍然会收到此订单:

$ rake middleware
use Rack::Sendfile
...
...
use ActionDispatch::Cookies
use ActionDispatch::Session::CookieStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
...
...
use Rack::SslEnforcer
...
...

因此Rack::SslEnforcer中间件未按预期插入ActionDispatch::Cookies中间件。我也尝试过这样做:

config.middleware.insert_before 0, Rack::SslEnforcer
按预期工作,并首先在中间件堆栈中插入Rack::SslEnforcer中间件(但我不确定这是一件好事吗?)。

我在这里缺少什么,你知道为什么insert_before没有按预期工作吗?谢谢你的帮助:)

0 个答案:

没有答案