ruby-on-rails - 在设计 SSL Controller 之后返回到 HTTP

标签 ruby-on-rails ssl devise ruby-on-rails-3.1

我正在尝试在 Devise 操作后将请求重定向到 HTTP。我不确定我正在尝试做的事情是否是正确/最好的方法,所以我愿意接受建议。这是我所拥有的,它因“重定向循环”而失败,这是可以理解的。现在我只需要弄清楚如何在重定向后终止请求。

这值得追求,还是有更好的方法?

class ApplicationController < ActionController::Base
  protect_from_forgery
  before_filter :https_only_for_devise

  @@ssl_controllers = ['devise/registrations',
                        'devise/sessions']

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil)
      redirect_to :protocol => 'http://'
    end
  end
end

最佳答案

成功了!将方法的内容更改为:

  def https_only_for_devise
    if (@@ssl_controllers.index(params[:controller]) == nil && request.ssl?)
      redirect_to :protocol => 'http://'
    end
  end

现在我已经考虑过了,非常明显......

关于ruby-on-rails - 在设计 SSL Controller 之后返回到 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7841533/

相关文章:

javascript - 如何将js变量传递给Rails函数

ruby-on-rails - Rails 优化查询并遍历大型实体

SVN 的 SSL 证书问题

ruby-on-rails - 我应该如何禁用 Rails 中的一些设计闪存消息

ruby-on-rails - 无法从 CanCan 'user_signed_in?' 模型访问 Devise 'Ability'

ruby-on-rails - 设计 - 还记得我不工作吗?本地主机问题?

ruby-on-rails - 事件模型序列化程序 - 提高渲染性能

javascript - JQuery 无法在 .show() 之后显示隐藏元素(复选框)

java - Apache Thrift 2-way SSL 相互认证

ssl - Cassandra 节点间加密是否可以选择流量?