gpt4 book ai didi

ssl - 为 Rails 2 中的所有页面设置 ssl_allowed/ssl_required?

转载 作者:太空宇宙 更新时间:2023-11-03 13:10:51 27 4
gpt4 key购买 nike

我发现当页面使用 SSL/HTTPS 时,AJAX 调用在我的 Rails 站点上不起作用。我通过添加

解决了这个问题
ssl_allowed :action1, :action2, :actionN

相关的 Controller 。

我预见到这会很痛苦并且将来容易出现错误,因为我无疑会忘记向 ssl_allowed 列表添加一个操作。

有没有办法在 [ssl_requirement][1] gem 中为我站点中每个 Controller 的所有操作全局打开 ssl_allowed/ssl_required?我尝试将以下内容添加到 ApplicationController,但这没有用:

ssl_allowed :all

最佳答案

如果您不想依赖 fork 插件,您可以覆盖 ssl_allowed?在你的 Controller 中:

 class ApplicationController < ActionController::Base
...
private

def ssl_allowed?
true
end
end

编辑:不是我想的那样。它不是为未指定 ssl_required 的页面禁用到 http 的重定向,而是短路整个重定向过程以不执行任何操作。这真是太糟了。代码:

 def ensure_proper_protocol
return true if ssl_allowed?

if ssl_required? && !request.ssl?
redirect_to "https://" + request.host + request.request_uri
flash.keep
return false
elsif request.ssl? && !ssl_required?
redirect_to "http://" + request.host + request.request_uri
flash.keep
return false
end
end

添加 ssl_allowed?如果代码改为:

def ensure_proper_protocol
if ssl_required? && !request.ssl?
redirect_to "https://" + request.host + request.request_uri
flash.keep
return false
elsif request.ssl? && !ssl_required? && !ssl_allowed?
redirect_to "http://" + request.host + request.request_uri
flash.keep
return false
end
end

关于ssl - 为 Rails 2 中的所有页面设置 ssl_allowed/ssl_required?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4961374/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com