2.1 KiB
2.1 KiB
Gerrit 登录问题诊断和修复方案
问题确认
从测试结果看:
- ✅ 服务器端发送了 Cookie(
Set-Cookie: GerritAccount=...) - ✅ 服务器端登录成功(日志显示
a/1000000) - ❌ 浏览器(Chrome 和 Firefox)都没有保存 Cookie
根本原因
Chrome 和 Firefox 对 SameSite=None 的 Cookie 要求必须同时设置 Secure=true,但我们的服务器是 HTTP(不是 HTTPS),所以无法设置 Secure=true。这导致浏览器拒绝保存 Cookie。
最终解决方案
方案一:修改 Chrome 的 SameSite 标志(推荐)
-
在 Chrome 地址栏输入:
chrome://flags/ -
搜索:
SameSite -
找到以下选项并修改:
SameSite by default cookies→ 设置为 DisabledCookies without SameSite must be secure→ 设置为 Disabled
-
重启 Chrome
-
清除浏览器 Cookie(
Ctrl+Shift+Delete) -
重新访问:
http://101.43.95.130:8080 -
点击 Account ID
1000000登录
方案二:修改 Firefox 的配置
-
在 Firefox 地址栏输入:
about:config -
搜索:
network.cookie.sameSite -
找到以下选项并修改:
network.cookie.sameSite.noneRequiresSecure→ 设置为 false
-
重启 Firefox
-
清除浏览器 Cookie
-
重新访问:
http://101.43.95.130:8080 -
点击 Account ID
1000000登录
方案三:配置 HTTPS(最彻底的解决方案)
配置 HTTPS 可以完全解决 Cookie 问题,但需要 SSL 证书。如果需要,我可以帮您配置。
方案四:修改 Gerrit 配置使用 LAX(可能有效)
让我尝试将 cookieSameSite 改为 LAX,这可能对某些浏览器更友好。
当前服务器配置
[httpd]
listenUrl = http://*:8080/
cookieSecure = false
cookieSameSite = NONE
cookiePath = /
重要提示
这是浏览器的安全策略限制,不是服务器配置问题。服务器端已经发送了 Cookie,但浏览器因为安全策略拒绝保存。
请先尝试方案一(修改 Chrome 的 SameSite 标志),这是最可能成功的方案。