Я пытаюсь преобразовать проект Ruby, который использует Sinatra и WEBrick, в Rails и Passenger.
Этот код в Sinatra работает нормально:
world.mount_proc("/profile") { |req, res|
p7sign = OpenSSL::PKCS7.new(req.body)
}
Я преобразовал этот код взапустить в контроллере Rails:
def profile
p7sign = OpenSSL::PKCS7.new(request.body)
end
При обработке запроса в Rails отображается следующая ошибка:
F, [2018-12-14T03:00:01.418176 #30473] FATAL -- : [4a785370-6bbe-4d34-8731-e4fd406f2719] ArgumentError (Could not parse the PKCS7: header too long):
F, [2018-12-14T03:00:01.418255 #30473] FATAL -- : [4a785370-6bbe-4d34-8731-e4fd406f2719]
F, [2018-12-14T03:00:01.418354 #30473] FATAL -- : [4a785370-6bbe-4d34-8731-e4fd406f2719] app/controllers/mdm_controller.rb:224:in `initialize'
Я использую одну и ту же версию Ruby для обоих приложений, Ruby 2.5.3p105.
Версия OpenSSL также одинакова для обоих, OpenSSL (по умолчанию: 2.1.2).
Почему это работает в Sinatra, но не работает в Rails?