【发布时间】:2014-10-01 11:55:00
【问题描述】:
如果环请求映射键:scheme的值为:https,是否保证HTTPS连接已经建立并且没有证书错误?
【问题讨论】:
如果环请求映射键:scheme的值为:https,是否保证HTTPS连接已经建立并且没有证书错误?
【问题讨论】:
这可能是一个与您使用的任何 servlet 容器相关的问题,而不是 ring。
ring-servlet 通过getting a value from the HttpServletRequest 填充:scheme 键:
:scheme (keyword (.getScheme request))
servlet 规范中关于getScheme 的内容只有这个:
返回用于发出此请求的方案名称,例如 http, https 或 ftp。不同的方案对构建 URL 有不同的规则, 如 RFC 1738 中所述。
有趣的是,ring-servlet 不会在 servlet 请求上调用 isSecure 方法。所以我认为你的问题应该是:
“当使用 时,ServletRequest 上的 getScheme() 是否有可能在 isSecure() 返回 false 时返回“https”?”
【讨论】:
ring-ssl 中间件的反向代理后面运行,它也可以基于X-forwarded-proto 标头进行设置,在这种情况下,所有赌注都已关闭。