first commit

This commit is contained in:
rjb
2025-12-22 17:12:39 +08:00
commit 1e007fa3f7
107 changed files with 15447 additions and 0 deletions

74
诊断和修复方案.md Normal file
View File

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