Apache предоставляет бета-версию решения для доступа к сайту - PullRequest
2 голосов
/ 06 мая 2010

Я создаю обычный сайт, и меня попросили установить временное ограничение доступа к нему. Все, что нужно, это общее ограничение доступа, которое будет использоваться бета-пользователями. Сайт развернут на сервере Apache (на Mac) с использованием пассажира. Мне интересно, какие есть решения?

Ответы [ 3 ]

4 голосов
/ 11 мая 2010

Я ответил на вопрос, аналогичный вчера, с простым решением в самом Rails; Я использую это решение для защиты сайта разработки от заражения во время тестирования. Я разместил его ниже для удобства.


В Rails есть встроенный помощник для этого, вы можете поместить его в свой контроллер приложения:

protected
  def authenticate
    authenticate_or_request_with_http_basic do |username, password|
      username == "admin" && password == "test"
    end
  end

Затем используйте before_filter на любых контроллерах, которые вы хотите защитить (или просто вставьте его в контроллер приложений, чтобы заблокировать весь сайт):

before_filter :authenticate

Этот метод работает как на Nginx, так и на Apache, что является дополнительным бонусом. Однако это не сработает, если у вас включено кэширование всей страницы - поскольку посетитель никогда не попадет в стек Rails; это не сработает.

Редактировать Просто заметил, что вы указали маршрут / admin. Все мои административные контроллеры наследуются от AdminController. Вы можете настроить свой так:

/ приложение / контроллеры / администратор / admin_controller.rb

class Admin::AdminController < ApplicationController
  before_filter :authenticate
  protected
    def authenticate
      authenticate_or_request_with_http_basic do |username, password|
      username == "admin" && password == "test"
    end
  end
end

Затем все ваши контроллеры расширяют контроллер администратора, например:

class Admin::ThingsController < Admin::AdminController

Мои маршруты настроены так:

map.namespace :admin do |admin|
    admin.resources :things
end

Надеюсь, это поможет.

0 голосов
/ 06 мая 2010

Prefinery дает вам готовое решение для этого типа сценария http://www.prefinery.com/

0 голосов
/ 06 мая 2010

Вот мой первый пример использования старого доброго решения htaccess, о котором я обнаружил удивительно мало информации о рельсах. Создать файл пользователя / пароля для пользователя 'beta':

mysite> htpasswd -c .htpasswd beta
mysite> chmod 755 .htpasswd

Создайте файл конфигурации доступа в rails public dir 'public / .htaccess', содержащий:

AuthName "Enter password"
AuthType Basic
AuthUserFile /Users/myuser/projects/mysite/.htpasswd
require user beta

Изменить права файла:

mysite> chmod 755 public/.htaccess

Отредактируйте файл apache conf (узнайте, где он находится с помощью 'apachectl -V | grep SERVER_CONFIG_FILE'). В разделе конфигурации VirtualHost добавьте следующее, чтобы определить, что в файле htaccess используется:

AllowOverride All
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...