Использовать 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 / https в Express.js
  • Как заставить java-сервер принимать только tls 1.2 и отклонять tls 1.0 и tls 1.1 соединения
  • javax.net.ssl.SSLException: Получено фатальное предупреждение: protocol_version
  • Включить TLS 1.1 и 1.2 для клиентов на Java 7
  • Как отправить электронную почту через SSL SMTP с помощью .NET Framework?
  • Как отключить резерв SSL и использовать только TLS для исходящих подключений в .NET? (Смягчение пуделя)
  • Как разрешены имена серверов сертификатов SSL / Можно ли добавлять альтернативные имена с помощью keytool?
  • Самостоятельный SSL-сертификат Tomcat Server / Client
  • Пользовательская обработка SSL перестала работать на Android 2.2 FroYo
  • Как установить доверенный сертификат CA на Android-устройство?
  • Firefox: это соединение не доверено + За корпоративным брандмауэром
  • Давайте будем гением компьютера.