# 配置网关认证密码与未设置密码时的访问策略

## 使用场景

如果你要使用 Web Gateway 或相关网关能力，并且希望限制访问，需要配置 `gateway_auth`。这项能力既支持配置文件，也支持环境变量覆盖密码。

## 操作步骤

1. 打开 Jarvis 全局配置文件：`~/.jarvis/config.yaml`。
2. 添加或修改如下配置：

   ```yaml
   gateway_auth:
     enable: true
     password: "your-password"
     allow_unset: false
   ```

3. 各字段含义：
   - `enable`：是否启用认证
   - `password`：固定密码
   - `allow_unset`：未设置认证信息时是否允许访问
4. 如果你希望用环境变量覆盖配置文件中的密码，设置环境变量：

   ```bash
   export JARVIS_GATEWAY_PASSWORD='your-password'
   ```

5. 重新启动相关网关或会话。
6. 验证访问时是否需要认证，并确认未设置密码时的访问策略是否符合你的预期。

## 你会看到的提示与反馈

- 如果设置了环境变量 `JARVIS_GATEWAY_PASSWORD`，它会覆盖配置文件中的 `password`，并强制启用认证、关闭 `allow_unset`。
- 如果配置正确，访问网关时会按你的认证策略生效。
- 如果认证信息缺失或配置不符合要求，相关访问可能被拒绝或按 `allow_unset` 的策略处理。

## 注意事项

- 配置项名称是 `gateway_auth`。
- 环境变量优先级高于配置文件中的密码配置。
- 如果你在安全环境中使用网关，建议把 `allow_unset` 设为 `false`。
- 如果你同时使用新旧两套认证方式，要以当前运行入口实际支持的方式为准。
