apache - 作者通过 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正在创建这个无限重定向循环,但我无法弄清楚到底发生了什么。
欢迎对此问题提出任何意见。
谢谢
解决方案
当我查看针对该身份验证请求设置的标头时,我注意到了标头Cache-Control: max-age:=3600
。深入研究我的 apache 配置,我注意到我正在设置 expire headers ExpiresDefault "access plus 1 hour"
。一旦我从作者的 Vhost 配置中删除它,无限重定向循环就消失了。
推荐阅读
- javascript - 通过js中的递归调用更改树结构数据中的父属性
- maven - 带有 java.lang.NoClassDefFoundError 的 itext7 Hello World 示例
- matlab - 接受特定类型的文件 Matlab
- matlab - 请问,如何计算结构字段中元素的数量?
- javascript - 当我单击另一个功能时,如何使按钮单击事件发生?
- c# - 为什么 Random.Range 与 Unity 列表中的按钮位置重叠?
- ruby-on-rails - 动态下拉菜单?
- angular - 如何在不提交 Angular 表单的情况下添加按钮?
- python - 从python中的列中删除单词
- qt - Qt - 使用 QOpenGLWidget 显示图像的步骤