Rails 3 - Список разрешенных IP-адресов по маршрутам

Это вопрос, состоящий из двух частей. Мне нужно ограничить сайт rails, который я размещаю на сервере разработки, только несколькими IP-адресами, чтобы общедоступный не может получить к нему доступ. (Базовая HTTP-аутентификация не работает «полностью», поскольку аутентификация нарушает загрузчик Flash в проекте.)

На основании того, что я искал в Google, это то, что я придумал в мой файл маршрутов ...

class WhitelistConstraint
  def initialize
    @ips = '127.0.0.1'
  end

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

MyProject::Application.routes.draw do
  constraints WhitelistConstraint.new do
     # all my routing stuff here
  end
end

Работает неплохо, однако мне нужно изменить его, чтобы работать с несколькими IP-адресами. Я пробовал использовать массив на @ips, а также перебирать каждый цикл, но ни один из них не работал.

Вдобавок ко всему, вторая часть моего вопроса ... Мне может понадобиться проверить только по сегменту IP, например, 127.0.0. Как мне это сделать?

12
задан Shannon 5 April 2011 в 14:52
поделиться