使用设计保护 sidekiq 管理员(记录的方法不起作用)
Protect sidekiq admin with devise (documented way not working)
我有一个使用 devise/omniauth 进行身份验证的应用程序,并运行了一堆 sidekiq worker。
我也想用设计来保护 /sidekiq 和 /sidekiq_monitor 路由,但到目前为止我 运行 在这方面遇到了很多麻烦。
记录的解决方案是在 routes.rb 中执行此操作:
authenticate :user do
mount Sidekiq::Web => '/sidekiq'
end
但这对我不起作用 - 当我添加时发生的事情是,如果用户转到 /sidekiq,无论他们的身份验证状态如何,他们都会被提示登录,如果他们登录并返回 /sidekiq他们再次被提示登录。
可能存在问题 - 我正在通过 omniauth-saml 登录,这意味着此处混合使用了一些重定向 - 但我网站上的所有其他身份验证都可以正常工作。我也只使用了很少的设计,只是:
devise :rememberable, :trackable, :omniauthable, :omniauth_providers => [:saml]
在你的路线中试试这个:
Sidekiq::Web.use Rack::Auth::Basic do |username, password|
username == USERNAME && password == PASSWORD
end if Rails.env.production?
mount Sidekiq::Web, at: "/sidekiq"
尝试将您的 routes.rb 文件更改为:
authenticate :user do
mount Sidekiq::Web, at: "/sidekiq"
end
另请注意 :user 指的是您的应用用户模型。如果您的用户模型有其他名称,比如 :admin,您应该将上面截取的代码中的 :user 替换为 :admin。
我有一个使用 devise/omniauth 进行身份验证的应用程序,并运行了一堆 sidekiq worker。
我也想用设计来保护 /sidekiq 和 /sidekiq_monitor 路由,但到目前为止我 运行 在这方面遇到了很多麻烦。
记录的解决方案是在 routes.rb 中执行此操作:
authenticate :user do
mount Sidekiq::Web => '/sidekiq'
end
但这对我不起作用 - 当我添加时发生的事情是,如果用户转到 /sidekiq,无论他们的身份验证状态如何,他们都会被提示登录,如果他们登录并返回 /sidekiq他们再次被提示登录。
可能存在问题 - 我正在通过 omniauth-saml 登录,这意味着此处混合使用了一些重定向 - 但我网站上的所有其他身份验证都可以正常工作。我也只使用了很少的设计,只是:
devise :rememberable, :trackable, :omniauthable, :omniauth_providers => [:saml]
在你的路线中试试这个:
Sidekiq::Web.use Rack::Auth::Basic do |username, password|
username == USERNAME && password == PASSWORD
end if Rails.env.production?
mount Sidekiq::Web, at: "/sidekiq"
尝试将您的 routes.rb 文件更改为:
authenticate :user do
mount Sidekiq::Web, at: "/sidekiq"
end
另请注意 :user 指的是您的应用用户模型。如果您的用户模型有其他名称,比如 :admin,您应该将上面截取的代码中的 :user 替换为 :admin。