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