84 Commits

Author SHA1 Message Date
ikmkj
23ced99e20 feat: 添加XSS防护工具函数并优化多个功能模块
refactor(前端): 重构登录页面和用户状态管理逻辑

fix(后端): 修复用户密码更新逻辑和错误提示

feat(后端): 实现分页搜索功能并优化文件删除逻辑

perf(前端): 优化笔记编辑器自动保存和状态提示

fix(后端): 增强图片上传安全验证

style(前端): 调整笔记预览页面按钮权限控制

chore: 更新生产环境配置和测试数据库依赖

feat(前端): 添加虚拟列表组件优化性能

fix(前端): 修复笔记编辑器返回逻辑和状态保存

refactor(前端): 优化axios拦截器错误处理逻辑

docs: 更新方法注释和参数说明
2026-03-04 18:29:52 +08:00
ikmkj
5ea9c776e7 feat(笔记预览): 实现大文件分块加载功能
添加分块加载API接口及前端实现,支持大文件(>500KB)的分页加载,提升大文件预览体验
后端实现分块逻辑并添加权限检查,前端添加加载提示和滚动加载功能
2026-03-04 16:43:25 +08:00
ikmkj
90626e73d9 refactor: 统一ID类型为Long并优化代码安全性和性能
修复用户删除接口的ID类型从Integer改为Long
移除未使用的Bouncy Castle依赖
添加dompurify依赖增强XSS防护
修复SQL表定义中的bigintBIGINT语法错误
优化图片预览接口的安全检查和错误处理
添加Vditor渲染引擎预加载和图片懒加载
统一分组和文件接口的ID类型为Long
增强前端用户状态管理,添加token过期检查
优化Markdown内容渲染流程和图片URL处理
2026-03-04 16:27:42 +08:00
ikmkj
25b52f87aa refactor: 统一错误处理并优化代码
- 移除重复的错误提示,统一在axios拦截器中处理
- 优化XSS拦截器,添加请求头白名单
- 修复注册码服务的日期处理问题
- 添加403权限错误处理
- 优化分组查询参数处理
2026-03-03 23:41:20 +08:00
ikmkj
a4f95e7315 feat(用户管理): 添加用户角色功能并实现权限控制
- 在用户表中添加role字段并设置默认值为'USER'
- 前端添加isAdmin getter判断用户角色
- 后端实现角色字段的VO映射和默认值设置
- 为关键接口添加@PreAuthorize权限控制
- 移除图片控制器中冗余的权限检查代码
2026-03-03 21:09:42 +08:00
ikmkj
375ccb89ff feat: 添加用户角色字段并实现权限控制
fix(security): 修复重放攻击拦截器的时间戳验证漏洞

refactor(security): 重构验证码工具类使用线程安全实现

perf(login): 优化登录锁定工具类性能并添加定期清理

fix(editor): 修复笔记编辑器空指针问题

style: 清理数据库索引脚本中的冗余注释

fix(api): 修复前端API调用参数编码问题

feat(image): 实现图片名称同步服务

refactor(markdown): 重构Markdown服务分离图片名称同步逻辑

fix(xss): 添加HTML转义函数防止XSS攻击

fix(user): 修复用户服务权限加载问题

fix(rate-limit): 修复速率限制拦截器并发问题

fix(axios): 生产环境隐藏详细错误信息

fix(image): 修复图片上传和删除的权限验证

refactor(captcha): 重构验证码工具类使用并发安全实现

fix(jwt): 修复JWT过滤器空指针问题

fix(export): 修复笔记导出XSS漏洞

fix(search): 修复Markdown搜索SQL注入问题

fix(interceptor): 修复重放攻击拦截器逻辑错误

fix(controller): 修复用户控制器空指针问题

fix(security): 修复nonce生成使用密码学安全方法
2026-03-03 20:48:40 +08:00
ikmkj
d54719d82d perf: 优化系统性能和资源管理
- 优化JWT解析器性能,复用JwtParser减少重复创建
- 使用Slf4j日志框架替代System.out.println
- 添加图片压缩功能,减少存储和带宽消耗
- 预编译正则表达式提升Markdown图片提取性能
- 重构限流拦截器,使用ConcurrentHashMap提高并发性能
- 添加数据库索引优化查询性能
- 为MarkdownFile实体添加autoResultMap配置
2026-03-03 19:14:48 +08:00
ikmkj
64daf3cb0b fix(XSSInterceptor): 增强XSS拦截器对请求头的处理
修改XSS拦截器对请求头的检查逻辑,当检测到XSS攻击时直接拒绝请求并返回400错误响应。新增错误响应写入方法,记录攻击日志。
2026-03-03 18:58:03 +08:00
ikmkj
07454a28d2 feat(安全): 增加验证码和安全验证功能
refactor(XSS): 重构XSS过滤逻辑并添加JSON反序列化过滤

feat(防重放): 前端添加防重放攻击机制

fix(验证码): 优化验证码生成和异常处理

style: 格式化代码并修复部分警告
2026-03-03 18:45:08 +08:00
ikmkj
61aeba9c65 feat: 增强安全组件并添加内存保护机制
1. 重构 ReplayAttackInterceptor、RateLimitInterceptor、CaptchaUtil 和 LoginLockUtil,使用 LRUCache 和读写锁优化内存管理
2. 新增 MemoryProtector 类实现内存监控和保护机制
3. 为所有内存缓存组件添加容量限制和过期清理策略
4. 更新 .gitignore 文件配置
2026-03-03 18:23:28 +08:00
ikmkj
23929a974f feat(安全): 添加验证码和登录安全增强功能
新增验证码功能用于敏感操作,包括删除账号、修改密码等
添加登录失败锁定机制和限流策略
实现防重放攻击和XSS防护增强
重构XSS拦截器使用请求包装器
2026-03-03 17:49:50 +08:00
ikmkj
5a24569ebd perf: 优化数据库连接与笔记预览加载性能 2026-03-03 17:28:43 +08:00
ikmkj
6d5233cb4b refactor: 优化图片处理与数据库连接配置 2026-03-03 17:16:44 +08:00
ikmkj
a99696ff7a feat: 优化分类选择器与笔记移动功能 2026-03-03 16:57:10 +08:00
ikmkj
392cc52fd2 feat: 实现笔记编辑器的自动保存功能与UI优化
refactor: 重构用户登录注册逻辑与数据验证

fix: 修复图片上传安全漏洞与路径处理问题

perf: 优化笔记列表分页加载与滚动性能

style: 改进侧边栏菜单的视觉设计与交互体验

chore: 更新环境变量与数据库连接配置

docs: 添加用户信息视图对象的Swagger文档

test: 增加用户注册登录的输入验证测试

ci: 配置JWT密钥环境变量与安全设置

build: 调整前端构建配置与模块加载方式
2026-03-02 02:01:01 +08:00
ikmkj
0426ad22b7 fix(config): 更新API基础URL配置和开发环境代理设置
- 修改前端开发环境API基础URL添加/api路径前缀
- 调整web环境配置中API基础URL为相对路径
- 在后端Markdown控制器中添加测试接口的非生产环境限制
- 更新Vite代理配置注释说明路径重写功能
2026-01-26 07:13:02 +08:00
ikmkj
95393ab517 refactor(database): 更新数据库配置和实体映射
- 修改数据库连接URL地址
- 为所有实体类添加@TableField注解映射数据库字段
- 使用反引号标识符包裹表名和字段名
- 更新SQL查询语句使用明确字段列表
- 在配置文件中启用MyBatis安全模式防止SQL注入
- 添加MarkdownFileVO中groupingName字段的exist = false标识
2026-01-08 19:44:22 +08:00
ikmkj
363918b3f7 feat(security): 添加CORS配置并调整跨域策略
- 在SecurityConfig中添加CORS配置,允许所有源、方法和头部
- 设置CORS凭证为false以避免与通配符冲突
- 在WebConfig中将allowCredentials设置为false
- 更新注释说明凭证配置的变更原因
2026-01-08 18:07:20 +08:00
ikmkj
bd0188605d feat(config): 更新项目配置以支持MySQL数据库和环境变量
- 添加docker环境变量配置文件包含数据库连接信息
- 更新前端环境变量中的API基础URL地址
- 修改后端应用配置以支持环境变量读取数据库配置
- 在Docker Compose中添加环境变量传递和env_file支持
- 配置生产环境下的MySQL数据源和MyBatis-Plus设置
- 添加服务器镜像导入和数据库用户创建说明文档
2026-01-07 14:58:16 +08:00
ikmkj
a0991db83e feat(database): 添加 MySQL 数据库支持并迁移数据表结构
- 新增 MySQL 5.7.44 建表脚本,包含分组、图片、Markdown文件等7张表
- 添加 SQLite 转 MySQL 的数据库迁移脚本
- 配置开发环境使用 MySQL 数据源连接
- 更新生产环境配置注释 SQLite 配置并预留 MySQL 配置位置
- 修改前端笔记编辑器保存逻辑,完善笔记更新功能
- 替换 SQLite 驱动为 MySQL 连接器依赖
- 添加 commons-codec 依赖用于 SHA256 计算功能
2026-01-06 21:18:06 +08:00
ikmkj
49646658ce feat(note): 实现笔记创建时后端生成ID功能
- 在CreateNoteDialog组件中导入updateMarkdown API并修改创建逻辑
- 创建笔记时传递null ID让后端生成唯一标识符
- 修改HomePage组件中的笔记创建和更新处理逻辑
- 在NoteEditor组件中获取后端返回的完整笔记数据包括新生成的ID
- 新创建的笔记将添加到列表开头并正确更新显示
2026-01-06 18:31:23 +08:00
ikmkj
701a621552 fix(config): 更新API地址和配置设置
- 修改前端环境配置文件中的API基础URL地址
- 切换路由模式从history到hash模式以解决部署问题
- 注释掉axios的withCredentials配置避免跨域问题
- 修复后端JWT认证过滤器中的代码注释和逻辑结构
- 更新Docker容器时区设置为上海时区
- 修复笔记编辑器中保存数据时字段缺失的问题
- 添加Vite构建输出目录和资源目录配置
- 恢复后端开发环境数据库路径配置
2026-01-06 17:58:24 +08:00
ikmkj
3e252e0043 feat(security): 完善JWT认证与权限拒绝处理逻辑
- 为JwtAccessDeniedHandler添加详细注释和中文错误提示- 在JwtAuthenticationEntryPoint中优化响应编码和状态码设置
- 统一使用UTF-8字符编码确保中文正确显示- 设置响应内容类型为JSON格式
- 明确设置HTTP状态码403和401对应权限问题- 添加WebConfig中静态资源处理器配置注释- 配置"/uploads/**"路径映射到服务器"uploads/"目录- 更新生肖文档结构,增加章节标题和内容调整
2025-10-12 22:14:35 +08:00
fd3e2a450f fix(biji): 修复图片上传和预览相关问题
-优化图片预览接口返回信息,提高错误处理的可读性- 在图片上传时添加基础 URL,确保正确的图片路径
- 更新 Vite 配置,修复开发环境的代理设置
2025-08-14 16:55:56 +08:00
49eba5ee96 refactor(image): 优化图片上传功能
- 修改后端接口,使用 @RequestPart 注解替代 @RequestParam
- 前端调整图片上传逻辑,直接发送 File 对象
- 简化前端上传成功后的处理流程
2025-08-14 16:19:13 +08:00
56465ffa75 fix(biji): 优化笔记编辑器自动保存机制并修复相关问题
- 实现了更可靠的自动保存功能,仅在用户停止输入后触发保存操作
- 修复了切换笔记时意外触发自动保存的问题
- 优化了重命名文件后的预览更新逻辑
- 调整了保存成功后的状态清理策略,提高了用户体验
2025-08-14 14:44:27 +08:00
ikmkj
daf8c98789 refactor(biji-houdaun): 重构数据库连接配置并删除计划文件
- 在 application-dev.yml 中更新了数据库连接 URL,恢复为原始路径
- 删除了 plan/index.md 文件,包括 HTML、CSS 和页面相关内容
2025-08-09 01:46:30 +08:00
d47c8d2009 refactor(biji): 更新 API基础路径和相关调用
- 将 VITE_API_BASE_URL 从 https://biji-houdaun.311169.xyz 修改为 /api- 更新前端 API 调用路径,统一添加 /api前缀
- 修改后端 SecurityConfig 和 SystemController,以适应新的 API 路径
2025-08-07 15:50:35 +08:00
ikmkj
72c916da4d feat(auth): 实现登录认证和权限控制功能
- 添加用户登录和登出功能
- 实现 Token 过期和无效的错误处理
- 添加路由权限控制,未登录用户重定向到登录页
- 优化登录失败的错误提示
- 修复搜索功能的返回数据问题
2025-08-06 23:42:18 +08:00
b28446c4b6 feat(image): 添加图片清理功能- 新增 FileStorageService 用于文件上传、下载和删除操作- 实现 ImageCleanupService 清理冗余图片
- 添加 ImageCleanupController 提供手动清理图片的 API
- 创建 ImageCleanupScheduler定时清理冗余图片
- 更新相关 Mapper 接口,增加必要的查询和删除方法
2025-08-06 17:29:11 +08:00
67f189995e refactor(biji-houdaun): 重构用户认证方法并添加安全工具类
- 将 MarkdownController 中的 isUserAuthenticated 方法移至 SecurityUtil 工具类- 在 SecurityUtil 中添加以下新方法:
  - getCurrentUsername - getCurrentUserDetails
  - hasRole
  - hasPermission - isAdmin
- 更新 MarkdownController 中的相关调用,使用 SecurityUtil 的静态方法
2025-08-06 15:22:00 +08:00
5f608b7573 feat(note): 增加私密笔记功能
- 在 MarkdownFile 表中添加 is_private 字段,用于标记笔记是否私密- 修改 MarkdownController 中的 getMarkdownContent 方法,增加对私密笔记的处理逻辑
- 更新 MarkdownFileService 接口和 MarkdownFileServiceImpl 实现类,支持根据认证状态获取笔记内容
- 优化未认证用户访问私密笔记时的处理,只显示标题不显示内容
2025-08-06 14:49:05 +08:00
7bf4ad137d refactor(biji-houdaun): 调整注册状态接口路径
- 将 "/api/system/registration/status" 接口路径修改为 "/system/registration/status"- 此修改简化了接口路径,去除了不必要的 "api"前缀
2025-08-06 11:02:42 +08:00
ikmkj
1cac44d5b3 Merge remote-tracking branch 'origin/master' 2025-08-04 19:45:59 +08:00
ikmkj
c188437ed5 refactor: 简化实体类并使用esbuild优化构建
Co-authored-by: aider (openai/gemini-2.5-pro) <aider@aider.chat>
2025-08-04 19:33:00 +08:00
8a52ad708f feat(security): 完善用户认证和权限管理
- 添加密码编码器,增强密码安全性
- 配置安全过滤链,实现无状态会话管理
- 更新用户详细信息获取逻辑,保留现有行为
2025-08-04 16:23:02 +08:00
b4f431aa03 build: 移除配置文件并清理MCP服务设置 2025-08-04 11:55:16 +08:00
ikmkj
f7c242dc73 ci: 更新环境变量并添加前端构建脚本
- 修改 .env.production 文件中的 VITE_API_BASE_URL 为新的后端服务地址- 在 package.json 中添加 build:frontend 脚本,用于前端项目构建
- 注释掉 pom.xml 中的 Docker 镜像构建配置
2025-08-02 23:21:31 +08:00
ikmkj
81678da683 refactor: 使用 Hutool工具类优化空值判断- 在多个控制器和服务实现类中,将原始的空值判断替换为 Hutool 工具类中的方法
- 使用 ObjectUtil.isNull() 替换原始的 == null 判断
- 使用 ObjectUtil.isNotNull() 替换原始的 != null 判断
- 在某些情况下,使用 StrUtil.isBlank() 替换原始的 == null 判断,以更准确地检查字符串是否为空
2025-08-02 19:53:47 +08:00
ikmkj
f858a9bcd6 feat(security): 根据环境动态配置白名单
- 引入 Environment 接口以获取当前激活的配置文件
- 根据是否为 prod 环境动态设置公共端点的白名单
- 优化了 SecurityConfig 类中的安全过滤链配置
2025-08-02 19:42:40 +08:00
ikmkj
2508f07b7b build(biji-houdaun): 优化生产环境配置并调整安全设置
- 修改 pom.xml,使用 spring-boot-maven-plugin 排除生产环境依赖
- 重构 SecurityConfig,简化公共端点配置并移除环境判断逻辑
2025-08-02 19:40:44 +08:00
ikmkj
1e7285cb68 feat(security): 动态配置公共端点白名单
-引入 Environment 接口以获取当前激活的配置文件
-根据是否为生产环境动态设置公共端点白名单
-优化了 SecurityConfig 类中的安全过滤链配置
2025-08-02 19:38:39 +08:00
ikmkj
f4851a80d3 build(biji-houdaun): 优化配置文件和依赖管理- 移除生产环境中的 MyBatis-Plus 配置- 在开发环境中添加 MyBatis-Plus 配置
- 在生产环境中禁用 Knife4j- 更新 Knife4j 和 springdoc 依赖为可选
-调整开发和生产环境的依赖范围
2025-08-02 19:27:02 +08:00
ikmkj
508eb0aacb build(biji-houdaun): 配置生产环境并优化构建流程
- 新增 production环境配置文件 application-prod.yml
- 更新 Dockerfile,设置生产环境变量
- 为 Knife4j 配置添加环境限制,仅在非生产环境激活
- 在 pom.xml 中添加开发和生产环境配置
- 更新编译打包命令文档,增加生产环境构建指令
2025-08-02 19:13:25 +08:00
ikmkj
15ad949da6 refactor(biji-houdaun): 调整端口并优化健康检查和跨域配置- 将应用端口从8083 改为8084
- 更新健康检查 URL 以匹配新端口
- 在 pom.xml 中指定镜像名称
- 修改跨域配置,使用 allowedOriginPatterns 允许所有来源
2025-08-02 17:18:47 +08:00
ikmkj
3a5ed5b84f build(biji-houdaun): 更新 Docker 配置和健康检查端口
- 修改健康检查端口:将 Dockerfile 中的健康检查 URL 从 http://localhost:8082/actuator/health 更改为 http://localhost:8083/actuator/health
- 更新 Docker 主机:将 pom.xml 中的 dockerHost 从 http://45.204.212.245:2375 更改为 http://127.0.0.1:2375- 调整资源目录:
2025-08-02 13:19:58 +08:00
ikmkj
2b3484d4cf feat(security): 优化权限控制并添加用户删除功能
- 更新 SecurityConfig,增加精确控制的公开阅读端点
- 实现用户删除功能,仅允许删除当前登录用户
- 优化用户删除接口,增加安全性检查
2025-08-02 12:12:59 +08:00
ikmkj
e10ad4b81c refactor(service): 为服务类添加全局事务管理
- 在 GroupingServiceImpl、ImageServiceImpl、MarkdownFileServiceImpl、RegistrationCodeServiceImpl、SystemSettingServiceImpl、TrashServiceImpl 和 UserServiceImpl 类上添加了 @Transactional 注解- 移除了 GroupingServiceImpl 中的局部 @Transactional 注解
- 此修改确保了每个服务类
2025-08-01 22:58:39 +08:00
ikmkj
399c79b756 feat(mapper): 添加物理删除功能并优化垃圾清理逻辑
- 在 GroupingMapper 和 MarkdownFileMapper 中添加物理删除方法
- 修改 TrashServiceImpl 中的 cleanTrash 方法,使用新增的物理删除方法
-优化了垃圾清理的 SQL 执行效率
2025-08-01 22:50:50 +08:00
ikmkj
15091c315e feat(image): 实现 Markdown 图片文件名同步
- 新增 ImageName 实体类和对应的 Mapper- 在 MarkdownFileService 中添加图片文件名同步方法
- 优化 HomePage 组件,支持实时预览 Markdown 内容
- 新增 MarkdownImageExtractor 工具类,用于提取 Markdown 中的图片文件名
2025-08-01 22:25:36 +08:00