Commit Graph

73 Commits

Author SHA1 Message Date
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
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
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
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
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
ikmkj
165bd5ea92 feat(user): 添加用户修改密码功能
- 在前端 HomePage 组件中添加修改密码对话框
- 在 API 中添加 updatePassword 接口
- 在后端 UserController 中添加密码更新接口
- 在 UserService 中添加 updatePassword 方法
- 实现密码更新逻辑,包括旧密码验证和新密码加密
2025-08-01 20:20:17 +08:00
ikmkj
df80ca6968 feat(auth): 优化注册功能并添加注册异常处理
- 新增 RegistrationException 类用于处理注册相关的异常
- 在全局异常处理器中添加 RegistrationException 的处理逻辑
- 修改用户服务中的注册逻辑,当用户名或邮箱已存在时抛出 RegistrationException
- 更新注册码实体类,将日期时间字段改为字符串类型
- 调整注册码生成和验证逻辑,使用字符串格式的日期时间
2025-08-01 20:06:13 +08:00
ikmkj
77efac5a81 feat(system): 实现注册码功能并优化用户注册流程
- 新增注册码生成和验证功能- 实现系统设置管理,包括注册功能开关
- 更新前端界面,增加系统管理和注册码相关功能
- 修改数据库结构,添加系统设置和注册码表
2025-08-01 19:29:27 +08:00
2bb265d23f feat(image): 优化图片上传和预览功能
- 修改图片上传接口,支持用户 ID 和 Markdown ID 参数
- 实现在线预览功能,支持多种文件类型
- 优化图片插入到 Markdown 编辑器的逻辑
- 更新数据库配置和连接字符串
2025-08-01 17:21:16 +08:00
7a7247a851 feat(security): 添加自定义认证和授权异常处理器
- 新增 JwtAccessDeniedHandler 处理权限不足异常
- 新增 JwtAuthenticationEntryPoint 处理认证失败异常- 在 SecurityConfig 中集成自定义异常处理器
- 优化 GlobalExceptionHandler 中的异常日志输出
2025-08-01 08:58:41 +08:00
ikmkj
b0a714df83 feat(trash): 优化回收站物品恢复和永久删除逻辑
- 在 GroupingMapper 和 MarkdownFileMapper 中添加物理删除和恢复的 SQL 操作
- 优化 HomePage组件中的删除操作,删除后刷新分组树并回到主视图
- 在 TrashServiceImpl 中实现物品恢复和永久删除的业务逻辑- 为 TrashItemVo 中的 deletedAt 字段添加 JSON 格式化注解
2025-08-01 00:14:34 +08:00
ikmkj
c448ababa9 feattrash: 优化删除功能和回收站逻辑
- 修改 Markdown 文件和分组的删除逻辑,使用软删除方式
- 更新回收站相关接口和页面展示
-优化前端保存逻辑,支持新建文件和更新文件
- 调整后端 API 接口,使用更合适的 HTTP 方法
2025-07-31 23:58:13 +08:00
ikmkj
1491cfc330 feat(recycle-bin): 实现回收站功能
- 在数据库中添加逻辑删除字段和相关索引- 新增回收站相关实体类和接口
- 实现回收站列表查询、项目恢复、永久删除和清空回收站等功能
- 前端集成回收站接口,支持回收站页面操作
2025-07-31 23:09:58 +08:00
ikmkj
cd43768baf feat(security): 添加 Token 验证功能
- 在 CommonApi.js 中添加 validateToken 函数,用于验证 Token 有效性
- 在 HomePage.vue 中集成 Token 验证功能,导出前验证登录状态- 在 UserController.java 中添加 validateToken 接口,用于后端验证 Token
2025-07-31 19:39:59 +08:00
7f9811a578 feat(service): 增加 Markdown 文件分组名称字段
- 在 MarkdownFileVO 类中添加 groupingName 字段
- 修改 getFilesByGroupingId 和 getRecentFiles 方法返回 MarkdownFileVO 列表- 在前端 HomePage 组件中显示分组名称
- 优化后端 SQL 查询,减少不必要的查询次数
2025-07-31 17:13:00 +08:00