基于Spring安全审查专家的报告,修复了以下关键问题: ## 🔒 安全修复 ### 1. 输入验证加强 - 新增 SecurityValidationUtils 统一安全验证工具类 - 实施严格的工单ID、会话ID、查询文本格式验证 - 添加SQL注入和XSS攻击防护 - 参数范围验证(topK、threshold等) ### 2. 敏感信息保护 - 修复日志中敏感信息泄露问题 - 实施日志脱敏处理 - 标准化错误消息,避免暴露系统内部信息 ### 3. 异常处理改进 - 统一异常处理机制 - 不向客户端暴露详细异常信息 - 安全的错误消息生成 ## 📋 代码质量提升 ### 1. 统一验证逻辑 - 集中化的输入验证方法 - 消除重复的验证代码 - 提高代码可维护性 ### 2. 事务管理 - 为相似度检索添加只读事务注解 - 确保数据库操作的一致性 ### 3. 安全最佳实践 - 实施防御性编程 - 添加参数长度限制 - 危险字符过滤 ## 🛡️ 安全特性 ### SecurityValidationUtils 工具类功能: - isValidRepairId(): 工单ID格式验证 - isValidSessionId(): 会话ID格式验证 - isValidQueryText(): 查询文本安全验证 - isValidNumberRange(): 数值范围验证 - sanitizeText(): 文本内容清理 - createSafeErrorMessage(): 安全错误消息生成 ### 防护能力: - SQL注入防护:检测和阻止SQL注入攻击模式 - XSS防护:检测和阻止跨站脚本攻击 - 路径遍历防护:文件名安全验证 - 长度限制:防止缓冲区溢出攻击 ## 🔧 修复的安全问题 1. **SQL注入风险**: 加强参数验证,使用参数化查询 2. **敏感信息泄露**: 日志脱敏,安全错误消息 3. **XSS攻击**: 输入内容过滤和验证 4. **参数验证不足**: 严格的格式和范围验证 5. **异常信息暴露**: 统一异常处理机制 这些修复显著提升了MCP实现的安全性,符合企业级应用的安全标准。 |
||
|---|---|---|
| .vscode | ||
| db | ||
| src | ||
| .gitignore | ||
| COMPILATION_FIXES_SECURITY_REVIEW.md | ||
| ERROR_CAPTURE_GUIDE.md | ||
| LLM_STREAMING_SUMMARY.md | ||
| MCP_IMPLEMENTATION.md | ||
| README.md | ||
| frontend-api-documentation.md | ||
| pom.xml | ||
README.md
YouFool DevOps 广东运维管理系统 (CW)
🎯 项目概览
YouFool DevOps 运维管理系统(广东)是基于 Spring Boot 框架开发的企业级运维管理平台。
核心特性
- 🔧 运维报障管理: 完整的故障报告、处理流程和状态跟踪
- 👥 组织架构管理: 用户、工程师信息管理和权限控制
- 📋 任务分配系统: 领导任务分配和工作流管理
- 📊 数据统计分析: 多维度数据统计和报表生成
- 🔄 实时通信: WebSocket 支持的实时消息推送
- 📝 错误日志管理: 可配置的错误捕获和日志管理系统
🏗️ 技术架构
运行环境
- Java: JDK 21 (OpenJDK)
- 框架: Spring Boot 2.7.18
- 构建工具: Maven 3.x
- 容器: Apache Tomcat 9.0.83
数据层
- 数据库: PostgreSQL 11.7
- 连接池: Druid 1.2.23
- ORM: MyBatis-Plus 3.5.7
- 数据源: 双数据源架构 (devops + youfool)
核心依赖
- 企业框架: youfool-framework-springboot 1.1.1-SNAPSHOT
- 安全框架: Apache Shiro 1.12.0
- API文档: SpringDoc OpenAPI 1.8.0
- HTTP客户端: Forest 1.5.16
- Excel处理: EasyExcel 2.2.6 + Spire.XLS 3.9.1
技术亮点
- ✅ JDK 21 现代化升级: 从 JDK 1.8 升级至 JDK 21,支持最新 Java 特性
- ✅ SpringDoc OpenAPI: 从 SpringFox 迁移至现代化 API 文档解决方案
- ✅ 双数据源架构: 支持 devops 和 youfool 两个数据源的事务管理
- ✅ 异步错误日志: 高性能的错误日志捕获和管理系统
📂 项目结构
src/main/java/com/chinaweal/youfool/devops/
├── base/ # 基础环境模块
│ ├── controller/ # 基础数据控制器 (字典、任务、错误日志等)
│ ├── entity/ # 基础实体类
│ └── service/ # 基础服务层
├── repair/ # 运维报障模块 (核心业务)
│ ├── controller/ # 报障管理控制器
│ ├── entity/ # 报障相关实体类
│ ├── excel/ # Excel 导入导出
│ ├── scheduled/ # 定时任务
│ └── service/ # 业务服务层
├── org/ # 组织架构模块
│ ├── controller/ # 用户和工程师管理
│ ├── entity/ # 用户实体类
│ └── business/ # 业务系统集成
├── leaderassign/ # 领导分配模块
│ ├── controller/ # 任务分配控制器
│ └── entity/ # 分配任务实体
├── websocket/ # WebSocket 模块
│ └── server/ # 实时通信服务
├── config/ # 配置类
├── util/ # 工具类
└── DevOpsApplication.java # 应用主类
🚀 快速开始
环境要求
- JDK 21+
- PostgreSQL 11+
- Maven 3.6+
启动应用
# 开发环境启动
mvn clean package -DskipTests=true
mvn spring-boot:run -Dspring-boot.run.profiles=dev
访问地址
- 应用主页: http://localhost:8080
- API文档: http://localhost:8080/swagger-ui.html
- Druid监控: http://localhost:8080/druid (admin/123456)
- 错误日志管理: http://localhost:8080/api/error-logs/
API文档分组
- 组织架构: 用户和工程师管理接口
- 运维报障: 核心业务功能接口
- 基础环境: 字典和基础数据接口
- WebSocket测试环境: 实时通信测试接口
- 领导分配: 任务分配相关接口
📊 配置说明
环境配置
application-dev.yml: 开发环境配置application-prod.yml: 生产环境配置application-local.yml: 本地开发配置
错误日志配置
系统支持完整的错误日志管理,可通过 error-log.* 配置项控制:
error-log:
enabled: true # 全局开关
startup-enabled: true # 启动错误日志
runtime-enabled: true # 运行时错误日志
database-enabled: true # 数据库错误日志
business-enabled: true # 业务错误日志
log-directory: logs/errors # 日志目录
async-write: true # 异步写入
🛡️ 系统监控
错误日志管理
- Web界面:
/api/error-logs/提供完整的日志管理功能 - 日志分类: 启动、运行时、数据库、业务错误分类存储
- 自动清理: 支持按天数自动清理历史日志
- 性能优化: 异步写入,不影响业务性能
数据库健康检查
- 双数据源监控: devops 和 youfool 数据源健康状态检查
- 连接信息展示: 启动时显示数据库连接详情
- 表访问测试: ENGINEER 表数据访问验证
Druid 连接池监控
- 访问地址: http://localhost:8080/druid
- 监控内容: SQL执行统计、连接池状态、慢SQL分析
- 登录信息: admin / 123456
🔒 安全特性
- Apache Shiro: 基于角色的访问控制 (RBAC)
- JWT Token: 10小时后端令牌生命周期
- RSA 加密: 敏感数据加密传输
- SM3 哈希: 密码安全哈希存储
- 请求拦截: 全局登录状态验证