Настройка Sinatra и Rack Protection

Я использую Sinatra и CORS, чтобы принять загрузку файла на домене A. (hefty.burger.com). Домен B (fizzbuzz.com) имеет форму, которая загружает файл на маршрут A.

У меня есть маршрут options и почтовый маршрут, оба с именами '/uploader'.

options '/uploader' do
  headers 'Access-Control-Allow-Origin' => 'http://fizz.buzz.com',
  'Access-Control-Allow-Methods' => 'POST'
  200
end 

post '/uploader' do
  ... 
  content_type :json
  [{:mary => 'little lamb'}].to_json
end

Варианты срабатывают первыми... и это работает... затем сообщение срабатывает и возвращает 403.

Если я отключу защиту, сообщение сработает... какую защиту мне нужно исключить из список, чтобы сохранить защиту, но разрешить эти сообщения?

Только недавно я был обожжен новой защитой Rack, сработавшей на Heroku и причинившей мне некоторое горе... кто-нибудь может подсказать, что здесь делать? Причина, по которой я говорю это, заключается в том, что я внезапно вижу записи журнала с предупреждениями о проблемах захвата сеанса (почти наверняка из-за не более чем запуска> 1 Dyno для приложения). Я вижу защиту стойки (1.2.0) в моем Gemfile.lock, хотя я никогда не просил об этом... что-то в моем манифесте требует этого, поэтому он загружается, но ничто в моем приложении Sinatra даже не пытается его потребовать или настроить его.

16
задан David Lazar 10 May 2012 в 15:08
поделиться