Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 使用Desive保护sidekiq管理员(记录方式不起作用)_Ruby On Rails_Devise_Omniauth_Sidekiq - Fatal编程技术网

Ruby on rails 使用Desive保护sidekiq管理员(记录方式不起作用)

Ruby on rails 使用Desive保护sidekiq管理员(记录方式不起作用),ruby-on-rails,devise,omniauth,sidekiq,Ruby On Rails,Devise,Omniauth,Sidekiq,我有一个应用程序,它使用designe/omniauth进行身份验证,并运行一组sidekiq工作人员 我也想用Desive保护/sidekiq和/sidekiq_监控路线,但到目前为止,我在这方面遇到了很多麻烦 有文档记录的解决方案是在routes.rb中执行此操作: authenticate :user do mount Sidekiq::Web => '/sidekiq' end 但这对我来说不起作用——当我添加这一点时会发生什么?如果用户进入/sidekiq,无论其身份如何,

我有一个应用程序,它使用designe/omniauth进行身份验证,并运行一组sidekiq工作人员

我也想用Desive保护/sidekiq和/sidekiq_监控路线,但到目前为止,我在这方面遇到了很多麻烦

有文档记录的解决方案是在routes.rb中执行此操作:

authenticate :user do
  mount Sidekiq::Web => '/sidekiq'
end
但这对我来说不起作用——当我添加这一点时会发生什么?如果用户进入/sidekiq,无论其身份如何,都会提示他们登录,如果他们登录并返回/sidekiq,则会再次提示他们登录

可能的皱纹-我通过omniauth saml登录,这意味着一些重定向正在这里混合发生-但这对我网站上的所有其他auth都很好。我也只使用了很少的设计,只是:

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。

必须将答案拿走-起初看起来它是有效的,但在重新加载几次后,问题又出现了。我想这是有效的。我的浏览器缓存出现了一些不稳定的情况,这让我很难说。这不会给页面添加designe auth,它会给页面添加一个完全不相关的基本auth。可能会有用,但这不是我正在寻找的解决方案。是的,它没有添加Desive auth。这是轻量级的,它可以工作,并且你不需要依赖于试图进入Desive的黑盒子。