|
|
a548425923
|
fix(security): 文件列表 userId 隔离 + CAS 退出清 SSO
研读模块 /gpt/file/list 之前没强制按 userId 过滤,理论上枚举
knowledgeBaseId 能拿到他人文件元信息(虽然 download 那一步有 userId 校验
所以下不下来,但文件名/大小/上传时间会泄露)。
- FileController.listFile 强制注入 userId = getSysUserId()
- UploadFileMapper.xml BaseSelect 加 <if userId != null> 过滤分支
CAS 退出登录之前只清了本地 JWT,没调 CAS server logout,导致:
- 后端 Redis 里的 token 还在
- CAS server 的 SSO cookie 还在 → 再点"统一身份登录"立即静默登入
- 其他接 CAS 的系统也还能继续访问
新增 POST /app/api/logout:
- 删 Redis 里 LOGIN_TOKEN_KEY:{userId}:{sessionId}
- SecurityContextHolder.clearContext()
- 返回 casLogoutUrl(${serverLogout}?service=前端 login 页)
前端 Operates.vue quit() 改 async:先调 logout 拿 casLogoutUrl,
removeToken 后 window.location.href 跳过去,让 CAS 清 SSO cookie 再回 /login。
CasProperties 加回 serverLogout 字段(之前清理时删了,本次需要)。
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-07 20:34:48 +08:00 |
|
|
|
b83c540018
|
fix(cas): 接通 CAS 单点登录全链路 + 清理冗余配置
修复链上的 8 个真 bug:
1. UserDetail(UserVO,Set) 漏 setAuthorities → CAS token 构造抛 IllegalArgumentException
修:CasUserDetailsService.buildGptUserDetail 手动补 empty authorities
2. frontEndUrl 写死内网 IP,localhost 隧道用户跳回时"无法访问此网站"
修:CasUrlBuilder 用 X-Forwarded-Host / Host 动态拼 service URL
3. vite proxy 没配 /metalinfo/chat_web_backend,CAS 回跳 ticket 被前端路由吞
修:加一条 proxy(rewrite 去 /metalinfo 前缀)+ X-Forwarded-Host 转发
4. ticket 校验 service URL 跟 entry point 不一致 → CAS server mismatch
修:自定义 AuthenticationDetailsSource 用同一个动态 URL
5. sendRedirect URL 含 # 经容器编码成 %23,浏览器拿不到 hash → 404
修:改用 query 参数(/metalinfo/?cas_token=xxx),前端 router beforeEach 拦截
6. CAS 登录后 HttpSession 残留,第二次访问 /cas/login 不触发 entryPoint → 落到
DispatcherServlet → 找不到映射 → 404 Whitelabel
修:SuccessHandler 完成后 invalidate session + clear SecurityContext
7. CAS 路径漏写 Redis token,JwtAuthenticationFilter 校验时 LOGIN_TOKEN_KEY 找不到
→ "token已失效" → 前端 axios interceptor 清 token 跳回 login
修:SuccessHandler 同步写 redisUtils.set,与 LoginController.saveLoginLog 对齐
8. permission.ts 没拦 query 里的 cas_token,hash 路由下 location.search 取不到
修:router beforeEach 优先消费 cas_token 再走 getSession
清理冗余:
- CasProperties 删 6 个未用字段(enabled/serverLogout/appLogout/appKey/
appSecret/httpsFlag/frontEndUrl)
- application.yml 同步删,移除写死的 app-secret 等敏感字段
- 删外部 override 文件 chat_web_backend/config/application.yml
- casServiceProperties.setService 改占位符(实际不被读取,只满足
ServiceProperties.afterPropertiesSet 的非空校验)
- 删 permission.ts 的 [CAS] [GUARD] debug log,保留 catch error 一条
新增:
- CasUrlBuilder 工具类:从请求动态解析 host/scheme,多个地方共用
UI:
- welcome 页面玻璃按钮 + 呼吸光晕/光感动画(用户自己调过,本次保留)
- App.vue:/welcome 路径不渲染 Operates 侧边栏
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-07 20:22:57 +08:00 |
|
|
|
cc54b24a77
|
feat(login): CASSIC 红金风登录页 + 玻璃按钮欢迎页
需求:
1. 默认访问 /metalinfo 未登录时跳到 CASSIC 风格登录页
2. 登录页支持两种模式: 账号密码登录 / 统一身份登录(CAS)
3. 登录成功跳转 /welcome (原蓝色登录页布局,但右侧表单换成玻璃风"立即体验"按钮)
变更:
- 新增 chat_web_front/src/views/welcome/index.vue
- 复用现有蓝色 Waves + projectLogo + "聚尖端之力" 文案
- 玻璃磨砂按钮(backdrop-filter blur),圆角胶囊 + 圆形箭头
- 点击 → router.push('/chat')
- 重写 chat_web_front/src/views/login/index.vue
- CASSIC 红金背景图(cassicLoginBg.jpg, 1920x1080 by /Users/jayliu/gangyan/ui)
- "登录注册中心" 标题 + 红色短分隔条
- 账号/密码/验证码 三段式表单 (el-icon User/Lock/Stamp)
- "短信验证登录" 链接切换到 SMS 模式
- 主红登录按钮 + 次级"统一身份登录(CASSIC)"白底红边按钮
- 登录成功后 router.push('/welcome')
- CAS 回调 cas_token 处理保留
- chat_web_front/src/router/index.ts:
- / → 默认重定向改为 /welcome (原来到 /chat)
- 新增 /welcome 路由
- 复制 ui/微信图片_20260423163044_262_1531.jpg 到
src/assets/images/login/cassicLoginBg.jpg
未做:
- SMS 验证码后端接口 (loginByTel) 仅留前端倒计时占位
- 图形验证码后端 (showCaptcha 默认关)
- 老素材 loginBg.png 仍由 welcome 页使用,未删
测试:
- 访问 /metalinfo → 未登录跳 /login (CASSIC 红金)
- 账号密码登录 / CAS 登录 → 跳 /welcome
- /welcome 点"立即体验" → /chat
|
2026-05-07 16:17:10 +08:00 |
|
|
|
911f7adee6
|
checkpoint: 重写 langchain agent 前的快照
包含未合入 main 的工作:
- CAS 单点登录接入 (CasSecurityConfig + 4 个 CAS 类)
- LoginController 改 POST + body, 修 URL 密码暴露
- chat_test.py 修 texts→text typo
- 前端外部系统侧边栏 + login API POST
- gateway-nginx.conf
下一步: 从这个分支拉 feat/langgraph-rewrite 做 langchain-chat agent 重写
回滚点: git checkout backup/pre-langgraph
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-07 14:58:53 +08:00 |
|
|
|
f8e8017434
|
feat: 顶部 title + logo 配色 + 侧栏外部系统快捷入口
- index.html: 浏览器 title 改为"中国产业基础能力发展战略研究院战知大模型"
- properties.ts: 加 fullProjectName 字段,projectName 短名保留用于 footer
- title.svg / chatLogo.svg: 米字图标左下主笔染 #FF2500 红,其余 5 笔染 #636E77 灰,"战知"汉字保留默认黑色
- Operates.vue: 侧栏底部 user 头像上方新增 3 个浅蓝按钮风格外链入口(钢研门户/项目管理/数据中心),点击新窗口打开内网系统
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
2026-05-06 16:51:09 +08:00 |
|
|
|
5eebcb5e83
|
fix: 工具反代路径冲突修复 + OCR改独立端口
- Stirling PDF: 用 context-path=/pdf 从应用层解决路径问题
- OCR: Vue Router history模式不兼容子路径,改回独立端口18083
- Lama Cleaner: 精确location匹配所有API(/model /inpaint等)
- PDF前端卡片路径从/spdf/改为/pdf/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-15 20:20:55 +08:00 |
|
|
|
570c0f3d61
|
fix: 工具广场统一18000端口 + 去除电量限制 + bot头像更新
nginx反代(tools-nginx.conf):
- 10个工具统一通过18000端口路径分发
- 解决/static/冲突(Lama精确匹配,其余给LibreTranslate)
- 解决/api/冲突(PDF用sub_filter改为/pdf-api/,/api/给imgcompress)
- Overleaf兜底处理所有未匹配的绝对路径
- 前端工具卡片统一走18000端口+路径
后端:
- 去除对话电量限制(validateUser中的num扣减逻辑)
前端:
- bot头像更新为战知logo(蓝底白字)
- LaTeX公式编辑器"复制为图片"改为"下载为图片"(解决跨域问题)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-15 19:28:23 +08:00 |
|
|
|
00a50858f8
|
fix: 调整侧边栏导航间距
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-08 20:39:13 +08:00 |
|
|
|
e1c3e550c3
|
feat: 用户管理模块
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-08 20:24:16 +08:00 |
|
|
|
6337af9481
|
feat: 新增4个工具(imgcompress/LamaCleaner/webp2jpg/Overleaf/LaTeX公式编辑器) + 应用广场布局优化
新增工具部署:
- imgcompress (端口18087) - 图片压缩、格式转换、AI抠图
- Lama Cleaner (端口18088) - AI图像擦除/去水印
- webp2jpg-online (端口18089) - 图片格式批量互转
- Overleaf (端口18090) - 在线LaTeX论文编辑器(docker-compose + MongoDB 8.0)
- LaTeX公式编辑器 (端口18091) - 纯前端KaTeX公式编辑
应用广场优化:
- 去掉tab切换,所有分类平铺展示
- CSS Grid自适应布局,一行可排3-4个卡片
- 重新分为4个分类:文档处理、图片处理、创作绘图、科研写作
其他:
- 更新 CLAUDE.md 项目配置文档
- PPTist AI后端优化prompt和流式输出格式
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-08 20:23:06 +08:00 |
|
|
|
108022cebd
|
feat: 品牌升级(知冶→战知) + 应用工具广场重构 + 新增工具集成
品牌升级:
- 全站品牌从"知冶"更名为"战知"
- 更换 favicon、侧边栏 logo、登录页 logo
- 更新登录页标语和首页欢迎语
应用广场重构:
- 从后端数据库驱动改为前端静态配置,按分类 tab 展示
- 新增工具卡片 UI,支持 logo 图片和 emoji 图标
新增工具部署:
- Stirling PDF (端口18080) - PDF 处理工具箱
- Excalidraw (端口18081) - 手绘风格白板,集成 AI 绘图
- TrWebOCR (端口18083) - 中文离线 OCR
- LibreTranslate (端口18084) - 中英翻译引擎
- PPTist (端口18085) - 在线 PPT 编辑器
- PPTist AI 后端 (端口18086) - 对接 deepseek-v3 生成大纲/PPT/写作
- Excalidraw AI 代理 (端口18082) - 对接 deepseek-v3 生成 Mermaid 图
其他:
- 智能场景仅保留"选题推荐"
- vite 代理配置增加 /pdf/ 和 /draw/ 路由
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
2026-04-08 17:24:51 +08:00 |
|
|
|
e1e5d4f30d
|
[前端+后端+RAG] 检索范围切换(当前文件/整个知识库);联网搜索功能(SearXNG);搜索结果带网络链接;修复RAG检索source格式不匹配bug
|
2026-04-07 15:03:16 +08:00 |
|
|
|
5dcb8771ed
|
[前端+RAG] 异步上传+前端轮询自动刷新导读;PDF阅读模式合并行消除留白
|
2026-04-02 17:17:36 +08:00 |
|
|
|
46428b7936
|
[RAG] PDF阅读模式改用pdfplumber(文本+表格提取,干净HTML);修复ck_mysql_config导入
|
2026-04-02 16:18:59 +08:00 |
|
|
|
05e33d1d05
|
[前端+RAG] 修复:异步上传+MySQL回写导读;PDF切换detached(Uint8Array复制);对话工具栏遮挡;阅读模式空白
|
2026-04-02 14:59:17 +08:00 |
|
|
|
8b7e3a726b
|
[前端+RAG] 恢复同步上传修复导读生成;用Uint8Array存PDF字节修复detached;CSS覆盖PDF阅读模式空白
|
2026-04-02 14:44:49 +08:00 |
|
|
|
7caf7cf66a
|
[前端+RAG] 修复PDF ArrayBuffer detached;修复阅读模式右侧空白(覆盖PyMuPDF固定宽度)
|
2026-04-02 14:30:58 +08:00 |
|
|
|
379187f675
|
[前端+RAG] 添加PDF阅读模式切换(预览/笔记);改进PDF→HTML用get_text(html)保留格式;修复长文件名操作菜单不显示
|
2026-04-02 14:21:41 +08:00 |
|
|
|
5158753b94
|
[前端+RAG] 修复PDF文字重叠;上传异步化(LLM+向量化后台执行);摘要关键词模型改为deepseek-v3
|
2026-04-02 14:10:08 +08:00 |
|
|
|
0e25154468
|
[前端] 修复PDF加载:直接用axios获取arraybuffer,绕过blob处理问题
|
2026-04-02 13:39:45 +08:00 |
|
|
|
f273643011
|
[前端] 修复PDF加载:正确处理downloadFile返回的blob格式
|
2026-04-02 13:29:02 +08:00 |
|
|
|
f508a8b6b1
|
[前端+RAG] PDF原生渲染(pdfjs text layer);Excel列宽优化+水平滚动
|
2026-04-02 13:24:41 +08:00 |
|
|
|
200ccac9b9
|
[前端] 修复翻译按钮错位:去掉硬编码margin-left;修复对话框硬编码宽度
|
2026-04-02 13:06:08 +08:00 |
|
|
|
1e47bcab37
|
[前端] 新建文件夹按钮改为带文字的明显按钮
|
2026-04-02 13:03:48 +08:00 |
|
|
|
3427dcd39e
|
[前端] checkbox改为批量删除模式才显示;修复搜索文件名时不展开文件夹的问题
|
2026-04-02 13:01:42 +08:00 |
|
|
|
0c7f2e83f8
|
[前端] 修复研读模块布局问题:统一圆角、Tab换行、拖拽改变大小、折叠面板、checkbox批量删除
|
2026-04-02 12:55:17 +08:00 |
|
|
|
a339757596
|
[前端] 研读模块改造为三栏布局:文件树+预览+问答
|
2026-04-02 12:01:27 +08:00 |
|
|
|
87e571d9ec
|
[全量] 初始化项目代码、配置、文档及Agent协同harness
|
2026-04-02 11:36:05 +08:00 |
|