【问题标题】:How can I skip rails warden authentication for sidekiq engine route?如何跳过 sidekiq 引擎路由的 rails 守望者身份验证?
【发布时间】:2017-01-10 06:21:16
【问题描述】:

我正在使用带有 Rails 4.2.6 的 sidekiq 4.1.4。

路由文件有以下代码:

require 'sidekiq/web'
mount Sidekiq::Web, at: '/sidekiq'

当我通过http://localhost:3000/sidekiq访问sidekiq UI时,它显示错误:

{
    "errors": [
        "Unauthorized Request"
    ]
}

我正在使用守望者身份验证,并且初始化程序文件包含以下代码:

Rails.application.config.middleware.insert_after ActionDispatch::ParamsParser, Warden::Manager do |manager|
  manager.default_strategies :authentication_token
  manager.failure_app = UnauthenticatedController
end

【问题讨论】:

    标签: ruby-on-rails-4 sidekiq sidekiq-monitor


    【解决方案1】:

    通过这些更改,我可以通过 http://my_domain.com/sidekiq 访问 sidekiq:

    使用以下代码创建一个初始化器:

    class MountedAppAuth
      def initialize( app )
        @app = app
      end
    
      def call( env )
        @app.call( env )
      end
    end
    

    在 routes.rb 中:

    require 'sidekiq/web'
    Sidekiq::Web.use MountedAppAuth
    mount Sidekiq::Web, at: '/sidekiq'
    

    【讨论】:

      猜你喜欢
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多