Commit Graph

22 Commits

Author SHA1 Message Date
liumangmang
f606d20000 feat: unify moba workspace and persist session tree layout 2026-04-10 11:04:21 +08:00
liumangmang
9f133bd337 feat: update monitor, terminal, and SFTP interaction flow 2026-04-01 15:22:51 +08:00
liumangmang
832d55c722 feat: 新增终端顶部实时服务器监控面板 2026-03-30 16:54:56 +08:00
liumangmang
acac45b692 fix: 终端 PTY 尺寸同步
前端在 xterm fit/resize 后通过 WebSocket 发送 resize 控制消息,后端收到后调用 ChannelShell.setPtySize 触发远端重绘,修复 less/vim/top 等全屏程序只显示部分区域的问题。

同时补齐控制消息解析与 PTY resize 的单测,并修正失配的 SftpControllerTest 断言。
2026-03-24 12:03:03 +08:00
liumangmang
77518b3f97 Fix: 修复 Docker 上传目录解析错误
将 multipart 上传目录改为基于 DATA_DIR 的绝对路径,避免 Tomcat 在容器内把相对路径解析到临时目录。同步让上传控制器复用该配置并补充错误日志,确保本地文件在异步上传期间可用。
2026-03-18 23:46:05 +08:00
liumangmang
6dbd5ae694 Merge: 修复文件上传临时文件丢失问题 2026-03-18 23:25:37 +08:00
liumangmang
e0c734d3d9 Config: 配置 multipart 持久化临时目录 2026-03-18 23:25:14 +08:00
liumangmang
e2f600c264 Fix: 修复文件上传临时文件丢失问题
问题:
- Docker 环境下上传文件时出现 FileNotFoundException
- Tomcat 在异步任务执行前清理了临时文件 /tmp/tomcat.xxx/work/...

解决方案:
1. 配置 multipart.location 为持久化目录 ./data/upload-temp
2. 设置 file-size-threshold: 0 强制立即写入磁盘
3. 修改 SftpController.upload() 方法:
   - 在异步任务执行前将 MultipartFile 保存到持久化位置
   - 异步任务从保存的文件读取而非 MultipartFile.getInputStream()
   - 上传完成或失败后自动清理临时文件

影响范围:
- backend/src/main/resources/application.yml
- backend/src/main/java/com/sshmanager/controller/SftpController.java
2026-03-18 23:24:53 +08:00
liumangmang
80fc5c8a0f feat: 增强 Transfers 页面文件浏览功能
- 在 SftpFilePickerModal 中添加搜索功能
- 添加显示/隐藏文件切换按钮(参考 SftpView)
- Remote->Many 模式下目标连接列表自动排除源连接
- 全选功能自动排除源连接
- 添加空状态提示信息
- 优化用户体验和交互逻辑
2026-03-12 17:45:07 +08:00
liumangmang
085123697e 增强 SSH/SFTP 稳定性并完善安全校验与前端交互 2026-03-11 23:14:39 +08:00
liumangmang
8845847ce2 Improve SFTP file view and upload handling
Add hidden-file toggle and search, prevent rapid-click path duplication, fix multipart upload headers, and raise backend upload size limits with clearer errors.
2026-03-10 18:07:51 +08:00
a10906d711 Improve SFTP reliability and credential hygiene with regression tests 2026-03-09 00:02:22 +08:00
liumangmang
a61a88f36b Implement session locking in SftpController to ensure thread safety during concurrent SFTP operations. Introduce a method to handle session locks and improve error handling by forcing reconnections on exceptions. This change addresses potential issues with shared ChannelSftp instances in concurrent requests. 2026-02-04 15:03:37 +08:00
liumangmang
e792fb919d Fix SftpService to access SftpException ID directly via the 'id' field for improved error message formatting. 2026-02-04 14:55:41 +08:00
liumangmang
7f57d69756 Enhance SFTP error handling in SftpController and SftpService by introducing a method to format SftpException messages. Improve listFiles method to handle empty paths and provide clearer error messages in response to exceptions. 2026-02-04 14:43:54 +08:00
liumangmang
ea38d1c026 Add DH-based key exchange algorithms in SftpService and SshService to ensure compatibility with Java 8 minimal JRE 2026-02-04 12:03:29 +08:00
liumangmang
a67562bfea Update jsch dependency to a modern version with enhanced algorithm support and change groupId for compatibility. 2026-02-04 11:57:36 +08:00
liumangmang
b82ea1919e Enhance CORS configuration and WebSocket origin settings to include additional localhost ports. Improve error handling in SftpController and SftpView for better debugging and user feedback. 2026-02-04 11:47:08 +08:00
liumangmang
4558ef20c0 Update application.yml to disable resource mapping for improved SPA handling 2026-02-04 11:16:01 +08:00
liumangmang
7e6ebd18a5 Refactor project structure and update .gitignore; enhance README with setup instructions and environment requirements. Clean up backend code for improved readability and maintainability. 2026-02-04 11:07:42 +08:00
liu
765d05c0a7 Update server port configuration from 8080 to 48080 in both backend and frontend settings. 2026-02-03 10:05:46 +08:00
liu
1c5a44ff71 Initial commit: SSH Manager (backend + frontend)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-03 09:10:06 +08:00