首页 > 解决方案 > 作者通过 https 登录后的 AEM 无限重定向循环

问题描述

我有一个位于调度程序后面的 AEM 作者,我的 apache 服务器配置为使用证书/密钥进行 SSL 加密。当我转到通过 Dispatcher 实例转到作者实例的项目的 https url 时,系统会提示我使用通常的作者登录页面。如果我输入我的凭据并单击提交,我就会陷入无限重定向循环

为了解决这个问题,我做的第一件事是分析我的 apache访问日志,看看那里是否发生了 301 或 302,但经过检查,我什么也没看到,我看到的只有 200 个。

"GET /libs/granite/csrf/token.json HTTP/1.1" 200 123 "https://bla.bla.bla/libs/granite/core/content/login.html?resource=%2F&$$login$$=%24%24login%24%24&j_reason=unknown&j_reason_code=unknown" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.122 Safari/537.36"

然后我回到我的浏览器并再次尝试了这个并挖掘了我的浏览器开发工具。由此看来,身份验证后的 AEM Author 使用 javascript 来重定向您/ => /index.html => /aem/start.html

然后,我用与我的域不对应的证书/密钥替换了我的 apache 配置中的正确证书/密钥(这使其无效)。重新启动 apache 后,我访问了我的 https url(接受了浏览器 https 异常),这一次当我被提示作者登录页面时,我能够输入我的凭据并登录而没有无限重定向循环,正常的作者行为会发生。

从这个故障排除中,我相信涉及证书/密钥设置的东西可能HSTS正在创建这个无限重定向循环,但我无法弄清楚到底发生了什么。

欢迎对此问题提出任何意见。

谢谢

标签: apacheauthenticationhttpsaemhsts

解决方案


当我查看针对该身份验证请求设置的标头时,我注意到了标头Cache-Control: max-age:=3600。深入研究我的 apache 配置,我注意到我正在设置 expire headers ExpiresDefault "access plus 1 hour"。一旦我从作者的 Vhost 配置中删除它,无限重定向循环就消失了。


推荐阅读