Ruby on Rails:ssl_required:我如何在整个应用程序上启用?

时间:2011-07-27 17:40:44

标签: ruby-on-rails ssl

是否有一种简单的方法可以在整个应用上启用SSL?

我正在使用rails 2.3.8

2 个答案:

答案 0 :(得分:7)

默认情况下,所有控制器都应继承ApplicationController

ssl_required实际上由名为ssl_required?的受保护方法支持,该方法确定给定操作是否需要SSL。此实现将使生产环境中始终需要SSL(但不是其他情况,因此您仍可以照常进行开发)。

class ApplicationController < ActionController::Base
  # (... other stuff ...)

  protected

  def ssl_required?
    Rails.env.production?
  end
end

根据您的环境,上游服务器也可能只能通过HTTPS使用(例如,如果您使用的是Apache,则可以将其配置为不通过端口80为您的应用程序提供服务)。这取决于您的服务器设置。

答案 1 :(得分:0)

在Rails 5中,您可以在应用程序配置中执行此操作:

因此,如果您想在整个应用程序中将其禁用,只需将其添加到config/application.rb

...
config.force_ssl = true
...

或者如果要针对不同的环境进行不同的配置:

config/production.rb

...
config.force_ssl = true
...

config/development.rb

...
config.force_ssl = false
...