4

gem ラック保護を使用しようとしましたが、使用ガイドに従って「config.ru」ファイルを構成しました。アプリを再度実行しようとすると、「Rack::Protection::SessionHijackingの前にセッション ミドルウェアを設定する必要がある」というエラーが表示されます。

  # config.ru
  require 'rack/protection'
  use Rack::Protection
  run MyApp

返信からコードを取得する:

module YouApp
  class Application < Rails::Application
    config.middleware.use Rack::Protection::SessionHijacking

私はこれを私のapplication.rbに入れて、 Rack::Protection::SessionHijackingの前にセッションミドルウェアを設定する必要があるInternal Service Errorをまだ取得しています

rake ミドルウェアの出力は次のとおりです。

use Rack::MiniProfiler
use ActionDispatch::Static
use Rack::Lock
use #<ActiveSupport::Cache::Strategy::LocalCache::Middleware:0x007f9482a28910>
use Rack::Runtime
use Rack::MethodOverride
use ActionDispatch::RequestId
use Rails::Rack::Logger
use ActionDispatch::ShowExceptions
use ActionDispatch::DebugExceptions
use ActionDispatch::RemoteIp
use ActionDispatch::Reloader
use ActionDispatch::Callbacks
use ActiveRecord::ConnectionAdapters::ConnectionManagement
use ActiveRecord::QueryCache
use ActionDispatch::Cookies
use ActiveRecord::SessionStore
use ActionDispatch::Flash
use ActionDispatch::ParamsParser
use ActionDispatch::Head
use Rack::ConditionalGet
use Rack::ETag
use ActionDispatch::BestStandardsSupport
use Warden::Manager
use Rack::Protection::SessionHijacking
use MetaRequest::Middlewares::MetaRequestHandler
use MetaRequest::Middlewares::Headers
use MetaRequest::Middlewares::AppRequestHandler
use OmniAuth::Strategies::Twitter
use OmniAuth::Strategies::Facebook
run Myapp::Application.routes

誰でも助けてくれることに感謝し、時間を割いてくれてありがとう。

4

2 に答える 2

2

@dip00dipの答えに基づいて、

これを行う:

# config/application.rb
config.middleware.use Rack::Protection

config.ru を使用しないでください。これは、Rails ガイドで推奨されている Rack Middleware の使用方法です。 http://guides.rubyonrails.org/rails_on_rack.html#configuring-middleware-stack

于 2014-04-04T07:48:46.153 に答える