ruby-on-rails - 传入外部 POST 请求的 Rails CSRF token 真实性

标签 ruby-on-rails ruby authentication fiware fiware-orion

我的 Rails 应用程序订阅了一个外部系统 POST 通知(名为 Orion context broker)。我管理发送 json 数据和处理响应(ruby->Orion)。

但是当收到通知请求时,我收到 InvalidAuthenticityToken 错误 无法验证 CSRF token 真实性警告

I, [2015-12-03T16:56:53.215991 #22189]  INFO -- : Started POST "/machine/listen" for 127.0.0.1 at 2015-12-03 16:56:53 +0000
I, [2015-12-03T16:56:53.221524 #22189]  INFO -- : Processing by MachineController#listen as XML
I, [2015-12-03T16:56:53.221762 #22189]  INFO -- :   Parameters: {"subscriptionId"=>"5660745482ef938cd5055ae3", "originator"=>"localhost", "contextResponses"=>[{"contextElement"=>{"type"=>"Printer", "isPattern"=>"false", "id"=>"UM1", "attributes"=>[{"name"=>"temperature", "type"=>"float", "value"=>"110"}]}, "statusCode"=>{"code"=>"200", "reasonPhrase"=>"OK"}}], "machine"=>{"subscriptionId"=>"5660745482ef938cd5055ae3", "originator"=>"localhost", "contextResponses"=>[{"contextElement"=>{"type"=>"Printer", "isPattern"=>"false", "id"=>"UM1", "attributes"=>[{"name"=>"temperature", "type"=>"float", "value"=>"110"}]}, "statusCode"=>{"code"=>"200", "reasonPhrase"=>"OK"}}]}}
W, [2015-12-03T16:56:53.223637 #22189]  WARN -- : Can't verify CSRF token authenticity
I, [2015-12-03T16:56:53.224191 #22189]  INFO -- : Completed 422 Unprocessable Entity in 2ms (ActiveRecord: 0.0ms)
F, [2015-12-03T16:56:53.225189 #22189] FATAL -- : 
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):

我了解发回 (Orion->ruby) 的消息不包含正确的安全 token 。

也许我可以禁用protect_from_forgery,但肯定会寻找一种方法来管理这些不同服务之间的身份验证。

谢谢

最佳答案

如果您知道自己在做什么,可以禁用 CSRF 保护!只要确保您没有为整个网站禁用它

在接收这些发布请求的 Controller 中使用类似 skip_before_action :verify_authenticity_token 的东西。

关于ruby-on-rails - 传入外部 POST 请求的 Rails CSRF token 真实性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34072672/

相关文章:

ruby-on-rails - 如何将参数传递给Rails中的委托(delegate)方法

ruby-on-rails - 设备中未定义的局部变量或方法 `resource_class'

ruby - 更改 ruby​​ sprintf 中参数的顺序

微服务方法之间的身份验证

security - 了解基本 WWW 身份验证中 "realm"的用途

Android - session Cookie

ruby-on-rails - 选择框设计

ruby-on-rails - 如何强制轻便摩托车从延迟运行的 Mongo 辅助副本集成员中读取

ruby-on-rails - 第一次运行 Rails 服务器时出错

ruby - 在 ubuntu 10.10 上使用 rvm 安装 ruby​​ 失败