我正在尝试将使用Sinatra和WEBrick的Ruby项目转换为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中不起作用?