Rails 5 保护 Sidekiq UI

Rails 5 Protect Sidekiq UI

我正在尝试使用 Devise 保护 Sidekiq UI。我是 运行 Rails 5.1、Devise 4.3 和 Sidekiq 5.0。我尝试了以下 post:

How can I password-protect my /sidekiq route (i.e. require authentication for the Sidekiq::Web tool)?

但我收到以下错误:

Undefined method failure_app for nil:NilClass

我的路线文件如下所示:

Rails.application.routes.draw do
  constraint = lambda do |request|
    request.env['warden'].authenticate!({ scope: :admin_user })
  end

  constraints constraint do
    mount Sidekiq::Web => '/admin/sidekiq'
  end

  devise_for :users
  resources :users
end

如何在 Rails 5.1 上使用 Devise 保护 Sidekiq UI?

我偶然发现了这个 page,它概述了如何使用 Devise UI 保护 Web:

Devise

Allow any authenticated User

# Allow any user access
authenticate :user do
  mount Sidekiq::Web => '/sidekiq'
end

# Allow only admin users
authenticate :user, lambda { |u| u.admin? } do
  mount Sidekiq::Web => '/sidekiq'
end

我已经确认这适用于 Rails 5.1 和 Devise 4.3。