Take a look at the ssl_requirement plugin.
不应检查您是否处于生产模式?我们看到在开发模式下重定向到https,这似乎很奇怪。或者这是插件的正常行为?我认为它过去的表现不同。
答案 0 :(得分:6)
我猜他们认为您应该在开发模式下使用HTTPS(可能带有自签名证书)。如果这不是理想的行为,那么在开发环境中没有什么可以阻止您处理特殊的套管SSL行为:
class YourController < ApplicationController
ssl_required :update unless Rails.env.development?
end
答案 1 :(得分:4)
def ssl_required?
return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
super
end
答案 2 :(得分:0)
理想情况下,您应该测试您的应用程序在敏感阶段重定向到https。
答案 3 :(得分:0)
在开发环境中要求SSL没有多大意义。
你可以使用Rails内置的模拟工具来截取插件 ssl_required?方法。
在您的应用程序根目录下创建一个文件test / mocks / development / application.rb
require 'controllers/application_controller'
class ApplicationController < ActionController::Base
def ssl_required?
false
end
end
这种方式在开发环境中从不需要SSL。
答案 4 :(得分:0)
实际上,通过https重定向是网络服务器的责任。每个请求添加额外的请求哈希验证到Rails是一个开销恕我直言。我写了nginx config,其中包括以下重写:
重写^(。*)https:// $ host $ 1 permanent;