3

config/routes.rbこれは通常コントローラーで発生することは知っていますが、特定の IP (または IP の範囲) に基づいてルートを制限できるかどうか疑問に思っています。ある種のホワイトリストのようなものです。

たとえば、このルートをサブネット上の IP のみに制限したいと思います。

#config/routes.rb
require 'sidekiq/web'

MyApp::Application.routes.draw do
  resources :users
  ...
  mount Sidekiq::Web, at: "/sidekiq"      # <== restrict this based on IP address
  ...
end
4

1 に答える 1

7

Rails Docsの例に基づいて、次のことができます。

#config/routes.rb
require 'sidekiq/web'

MyApp::Application.routes.draw do
  resources :users
  ...
  mount Sidekiq::Web, at: "/sidekiq", :constraint => Whitelist.new
  ...
end

class Whitelist
  def initialize
    @ips = Whitelist.retrieve_ips
  end

  def matches?(request)
    @ips.include?(request.remote_ip)
  end

  def retrieve_ips
    # get and return your whitelist of ips
  end
end

Yehuda Katz によるこの投稿では、制約とその使用方法について詳しく説明しています。

于 2013-02-07T19:27:25.557 に答える