【问题标题】:Catch exception from included middleware从包含的中间件中捕获异常
【发布时间】:2013-12-15 03:06:57
【问题描述】:

我有一个 Sinatra 应用程序,我正在使用 rack_csrf gem 来保护我的表单,如果 CSRF 令牌无效并且我想捕获它以用于日志记录,这个 gem 会引发异常。有没有办法捕获此异常或从 Sinatra 主应用程序获取返回的状态代码?

我的代码是这样的:

class MyApp < Sinatra::Base
  use Rack::Csrf
end

这就是我想要捕捉的内容:https://github.com/baldowl/rack_csrf/blob/master/lib/rack/csrf.rb#L42

感谢您的帮助!

【问题讨论】:

    标签: ruby sinatra rack middleware


    【解决方案1】:

    您可能需要write a middleware,它将从您的应用程序中捕获该异常并进行日志记录。类似于以下内容:

    def call(env)
      @app.call(env)
    rescue InvalidCsrfToken => e
      #log error here, then return a status code
    end
    

    【讨论】:

      猜你喜欢
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 2013-07-13
      相关资源
      最近更新 更多