diff --git a/AGENTS.md b/AGENTS.md index 4372c6e..162242c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1451,6 +1451,53 @@ cargo build -p markbase-core # ✅ 0 error --- +**最後更新**:2026-06-18 23:45 +**版本**:1.16(SFTP 認證 DataProvider 整合完成) + +## SFTP 認證 DataProvider 整合(2026-06-18)⭐⭐⭐⭐⭐ + +**完成時間**:約 30 分鐘 +**新增代碼量**:188 行 +**Git commits**:667d720 + dfd7673 + +### 实施内容 ⭐⭐⭐⭐⭐ + +**sftp/auth.rs 重構**: +- `SftpAuth` 使用 `Arc` 而非 `AuthDb` +- 新增 `verify_password()`, `get_user()`, `get_home_dir()` 方法 +- 新增單元測試(使用 SqliteProvider) + +**sftp/server.rs 重構**: +- `MarkBaseSftpServer` 接受 `Arc` 參數 +- `SshSession` 正確實現 `russh::server::Handler` trait +- `auth_request` 支持 password 和 public key 認證 +- 修復原文件的 broken impl blocks 結構 + +### russh Handler 整合 ⭐⭐⭐⭐⭐ + +| Handler 方法 | 功能 | 狀態 | +|-------------|------|------| +| `auth_request` | Password + PublicKey 認證 | ✅ | +| `channel_open_session` | SSH channel 開啟 | ✅ | +| `subsystem_request` | SFTP/Shell subsystem | ✅ | +| `exec_request` | SCP/rsync 命令 | ✅ | +| `shell_request` | Shell 交互 | ✅ | + +### 測試結果 ✅ + +```bash +cargo test -p markbase-core --lib # 135 passed, 0 failed +``` + +### Git 提交 + +**Commit 667d720**: "Refactor sftp/auth.rs to use DataProvider trait" +**Commit dfd7673**: "Refactor sftp/server.rs: integrate DataProvider for authentication" + +**推送到**:✅ m5max128gitea + ✅ m4minigitea + +--- + **最後更新**:2026-06-18 16:00 **版本**:1.13(VFS/DataProvider/Config 重構 Phase 1-6 完成)