103 lines
2.9 KiB
Markdown
103 lines
2.9 KiB
Markdown
|
|
# Gerrit Cookie 问题直接修复方案
|
|||
|
|
|
|||
|
|
## 已完成的服务器端修复
|
|||
|
|
|
|||
|
|
我已经在服务器端做了以下优化:
|
|||
|
|
|
|||
|
|
1. ✅ **更新 Cookie 配置**:
|
|||
|
|
- `cookieSecure = false`(允许 HTTP 使用 Cookie)
|
|||
|
|
- `cookieSameSite = NONE`(最宽松的设置)
|
|||
|
|
- `cookiePath = /`(确保 Cookie 路径正确)
|
|||
|
|
|
|||
|
|
2. ✅ **服务已重启**,配置已生效
|
|||
|
|
|
|||
|
|
## 问题根源
|
|||
|
|
|
|||
|
|
这是 **Chrome 浏览器的安全策略**导致的。Chrome 对 `SameSite=None` 的 Cookie 要求必须同时设置 `Secure=true`,但我们的服务器是 HTTP(不是 HTTPS),所以无法设置 `Secure=true`。
|
|||
|
|
|
|||
|
|
## 最终解决方案
|
|||
|
|
|
|||
|
|
### 方案一:修改 Chrome 启动参数(推荐)
|
|||
|
|
|
|||
|
|
在 Chrome 启动时添加参数来允许不安全的 Cookie:
|
|||
|
|
|
|||
|
|
1. **关闭所有 Chrome 窗口**
|
|||
|
|
|
|||
|
|
2. **创建 Chrome 快捷方式**(Windows):
|
|||
|
|
- 右键点击 Chrome 快捷方式 → 属性
|
|||
|
|
- 在"目标"后面添加:
|
|||
|
|
```
|
|||
|
|
--disable-web-security --user-data-dir="C:\temp\chrome_dev"
|
|||
|
|
```
|
|||
|
|
- 完整路径示例:
|
|||
|
|
```
|
|||
|
|
"C:\Program Files\Google\Chrome\Application\chrome.exe" --disable-web-security --user-data-dir="C:\temp\chrome_dev"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **使用这个快捷方式启动 Chrome**
|
|||
|
|
|
|||
|
|
4. **访问**:`http://101.43.95.130:8080`
|
|||
|
|
|
|||
|
|
5. **点击 Account ID `1000000` 登录**
|
|||
|
|
|
|||
|
|
### 方案二:使用 Firefox 浏览器(最简单)
|
|||
|
|
|
|||
|
|
Firefox 对 Cookie 的限制较少:
|
|||
|
|
|
|||
|
|
1. **下载 Firefox**:https://www.mozilla.org/firefox/
|
|||
|
|
2. **安装并启动 Firefox**
|
|||
|
|
3. **访问**:`http://101.43.95.130:8080`
|
|||
|
|
4. **点击 Account ID `1000000` 登录**
|
|||
|
|
|
|||
|
|
Firefox 通常可以正常工作。
|
|||
|
|
|
|||
|
|
### 方案三:配置本地 hosts 文件(可能有效)
|
|||
|
|
|
|||
|
|
1. **编辑 hosts 文件**(需要管理员权限):
|
|||
|
|
- Windows: `C:\Windows\System32\drivers\etc\hosts`
|
|||
|
|
- 添加一行:
|
|||
|
|
```
|
|||
|
|
101.43.95.130 gerrit.local
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **访问**:`http://gerrit.local:8080`
|
|||
|
|
|
|||
|
|
3. **点击 Account ID `1000000` 登录**
|
|||
|
|
|
|||
|
|
使用域名可能比 IP 地址更容易被浏览器接受。
|
|||
|
|
|
|||
|
|
### 方案四:使用测试页面
|
|||
|
|
|
|||
|
|
我已经创建了一个测试页面,您可以:
|
|||
|
|
|
|||
|
|
1. **访问测试页面**(如果放在 Web 服务器上)
|
|||
|
|
2. **点击"测试 Cookie"按钮**
|
|||
|
|
3. **查看是否能设置 Cookie**
|
|||
|
|
|
|||
|
|
## 当前服务器配置
|
|||
|
|
|
|||
|
|
```ini
|
|||
|
|
[httpd]
|
|||
|
|
listenUrl = http://*:8080/
|
|||
|
|
cookieSecure = false
|
|||
|
|
cookieSameSite = NONE
|
|||
|
|
cookiePath = /
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这是最宽松的配置,但 Chrome 仍然可能阻止。
|
|||
|
|
|
|||
|
|
## 推荐方案
|
|||
|
|
|
|||
|
|
**强烈推荐使用 Firefox 浏览器**(方案二),这是最简单且最可能成功的方案。
|
|||
|
|
|
|||
|
|
如果必须使用 Chrome,请尝试方案一(修改启动参数)或方案三(使用域名)。
|
|||
|
|
|
|||
|
|
## 如果都不行
|
|||
|
|
|
|||
|
|
如果以上方案都不行,可以考虑:
|
|||
|
|
|
|||
|
|
1. **配置 HTTPS**(需要 SSL 证书,但可以完全解决 Cookie 问题)
|
|||
|
|
2. **使用 SSH 方式操作**(不依赖 Web 登录)
|
|||
|
|
3. **每次访问都重新登录**(虽然麻烦,但可以工作)
|
|||
|
|
|