Использовать SSL с помощью ssl_requirement в приложении Rails 2

У меня есть приложение Rails, которое нужно запускать под SSL. Я попробовал ssl_requirement, но мне кажется, что я должен вводить все действия в каждом controllerе.

Есть ли какой-нибудь метод, который я могу добавить перед_фильтром в controller приложения с помощью ssl_requirement, чтобы приложения автоматически перенаправлялись на https, когда пользовательский запрос находится в http?

Спасибо всем. 🙂

Используйте промежуточное ПО Rack .

# lib/force_ssl.rb class ForceSSL def initialize(app) @app = app end def call(env) if env['HTTPS'] == 'on' || env['HTTP_X_FORWARDED_PROTO'] == 'https' @app.call(env) else req = Rack::Request.new(env) [301, { "Location" => req.url.gsub(/^http:/, "https:") }, []] end end end # config/environment.rb config.middleware.use "ForceSSL" 

Вы можете попробовать выполнить тест, если запрос находится в ssl или нет в файле before_filter в вашем приложении

 class Application < AC::Base before_filter :need_ssl def need_ssl redirect_to "https://#{request.host}/#{request.query_string}" unless request.ssl? end end 

Основная проблема заключается в том, что force_ssl.rb не загружается и что lib не загружается по умолчанию в rails 3.1. Вы должны добавить

 config.autoload_paths += %W(#{config.root}/lib) config.autoload_paths += Dir["#{config.root}/lib/**/"] 

к application.rb

  • Повторное использование сеансов SSL в Android с HttpClient
  • Https Connection Android
  • Dyld: библиотека не загружена: /usr/lib/libcurl.4.dylib curl Ошибка SSL
  • Что делает Subversion для своего списка CA?
  • Какой простой способ полностью игнорировать ssl с java-url-соединениями?
  • SSL, Tomcat и Grails
  • Как установить: OpenSSL + WAMP
  • Импорт пары private-key / public-certificate в Java KeyStore
  • Можно ли заменить обычный разъем на SSLSocket?
  • Как игнорировать создание пути PKIX не удалось: sun.security.provider.certpath.SunCertPathBuilderException?
  • Принять самоподписанный сертификат ssl сервера в Java-клиенте
  • Interesting Posts

    USB-накопитель распознается в Linux, а не в окнах, mkfs, в каком типе?

    Знаю ли я, нужен ли мне Multi-Dex? (ClassNotFoundException)

    «Text-decoration» и псевдоэлемент «: after», пересмотренный

    Как получить выбранный пользователем формат даты в Android?

    Изменение фонового изображения с помощью анимации CSS3

    Как заставить браузер / поисковую систему игнорировать обнаружение текущего местоположения

    SSH аутентификация с открытым ключом не выполняется

    Удаление элементов в массиве, если элемент является определенным значением VBA

    Удаление старого раздела Vista, но это активный системный раздел

    Изменение вида для ViewModel

    Переносные ярлыки в Windows

    Проблема SQLiteOpenHelper с полным именем пути к базе данных

    Суммировать строки в data.frame или matrix

    XEN 4.1.3 на OpenSuSE 12.2, не видя клавиатуры Dell XPS 1330

    Outlook 2007 (2003) Правило: «Отметить как прочитанное» «Переместить в определенную папку» Отображение конвертов в системном трее после чтения сообщения

    Давайте будем гением компьютера.