Rails SSL Requirement插件-在重定向到https之前,它不应该检查一下是否处于生产模式吗?

时间:2020-03-06 14:23:45  来源:igfitidea点击:

看一下ssl_requirement插件。

它不应该检查我们是否处于生产模式吗?我们看到在开发模式下重定向到https,这似乎很奇怪。还是该插件的正常行为?我认为过去的表现有所不同。

解决方案

我猜他们相信我们可能应该在开发模式下使用HTTPS(也许带有自签名证书)。如果这不是期望的行为,那么我们自己就无法阻止自己在开发环境中的特殊大小写SSL行为:

class YourController < ApplicationController
  ssl_required :update unless Rails.env.development?
end

理想情况下,我们应该测试在敏感阶段将应用程序重定向到https。

在开发环境中要求SSL没有多大意义。

我们可以存根ssl_required插件吗?使用Rails内置的模拟工具的方法。

在应用程序根目录下,创建一个文件test / mocks / development / application.rb

require 'controllers/application_controller'

class ApplicationController < ActionController::Base
  def ssl_required?
    false
  end
end

这样,在开发环境中就不再需要SSL。

def ssl_required?
    return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
    super
  end