这个问题没有在 playframework 上标记,因为它很可能可以由具有强大 http 知识的人解决(并且那些用户倾向于跳过 playframework 问题)。
playframework 1.2.5 有以下代码片段
if (url.startsWith("http")) {
//
} else if (url.startsWith("/")) {
url = String.format("http%s://%s%s%s", request.secure ? "s" : "", request.domain, (request.port == 80 || request.port == 443) ? "" : ":" + request.port, url);
} else {
url = String.format("http%s://%s%s%s%s", request.secure ? "s" : "", request.domain, (request.port == 80 || request.port == 443) ? "" : ":" + request.port, request.path, request.path.endsWith("/") ? url : "/" + url);
}
这段代码碰巧破坏了我们的登录/注销,因为它重定向到不正确的 http,因为即使我们的 playframework 在 http 中,我们的 LB 对用户来说也是在 https 中。为什么有人会有这个代码?相对 url 还不足以重定向吗?
我注释掉了代码,现在我们的网站运行良好,但我仍然觉得为什么首先要把这段代码放到 playframework 中?
任何想法,猜测都会很棒,或者如果您知道答案,那就更好了。
谢谢,院长