# security-system **Repository Path**: biubiubiud/security-system ## Basic Information - **Project Name**: security-system - **Description**: security-system 是一个面向安全测试的任务与漏洞管理系统,分为前端管理界面 security-admin-web 和后端服务 security-test-system。通过 REST API 连接,支持任务的全生命周期(草稿 → 测试中 → 初测完成 → 待复测 → 复测中 → 复测完成 → 已归档),并覆盖漏洞跟踪、测试单位与人员分配、复测流程、AI 辅助修复建议和报告导出等能力。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-28 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # security-system 安全测试管理系统,包含: - `security-admin-web`:前端管理界面 - `security-test-system`:后端服务 ## 后端敏感配置 `security-test-system` 已改为通过环境变量读取数据库、Redis、RabbitMQ 和 JWT 配置,不再在 `security-test-system/src/main/resources/application.yml` 中写死真实密码或密钥。 可参考示例文件: - `security-test-system/.env.example` 使用方式: 1. 在 shell、IDE Run Configuration 或 CI Secret 中注入上述变量。 2. 再启动后端,例如执行 `mvn spring-boot:run`。 > 本地开发常用示例(Mac / Linux Shell): > > ```bash > cd security-test-system > > # MySQL 数据库配置(本地示例:root/root123456) > export SECURITY_DB_URL="jdbc:mysql://localhost:3306/security_test_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true" > export SECURITY_DB_USERNAME="root" > export SECURITY_DB_PASSWORD="root123456" > > # 可选:Redis、RabbitMQ、JWT 等其它配置 > # export SECURITY_REDIS_HOST="localhost" > # export SECURITY_RABBITMQ_HOST="localhost" > # export SECURITY_JWT_SECRET="请在生产环境中改为足够随机的强密钥" > > # 启动后端 > mvn spring-boot:run > ``` > > Windows PowerShell 可使用: > > ```powershell > cd security-test-system > > $env:SECURITY_DB_URL = "jdbc:mysql://localhost:3306/security_test_system?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true" > $env:SECURITY_DB_USERNAME = "root" > $env:SECURITY_DB_PASSWORD = "root123456" > > mvn spring-boot:run > ``` 注意: - `.env.example` 仅作示例,Spring Boot 默认不会自动加载该文件。 - 生产环境务必替换 `SECURITY_JWT_SECRET`,不要使用默认占位值。 - 生产环境建议显式设置 `SECURITY_CORS_ALLOWED_ORIGINS`,只允许实际前端域名跨域访问后端。 - 若数据库是用 `schema.sql` 初始化的引导账号,建议同时设置 `SECURITY_BOOTSTRAP_USER_PASSWORD`。 未设置时,系统启动后会自动为 `admin / tester1 / tester2` 生成一组新的临时强密码,并在启动日志中打印出来。 这样账号会保留可登录,但不会继续使用仓库内已知默认口令。 ## 最近更新 ### 2026-03-27 - 资产管理、任务管理详情页升级为页内工作台模式,不再局限于左侧抽屉;点击左上角返回按钮或再次点击对应菜单,可直接回到列表页。 - 资产工作台重构为统一的 `AssetWorkbenchPanel`,关键信息右上角保留编辑入口,关键信息下方按“关联任务”“漏洞列表”顺序联动展示,并支持从当前资产直接进入任务工作台或漏洞工作台。 - 任务工作台重构为统一的 `TaskWorkbenchPanel`,将“查看所属资产”“编辑任务”移动到关键信息右上角,移除底部独立“查看漏洞”入口,并在关键信息下方直接展示任务漏洞列表。 - 任务工作台中的漏洞列表新增“新增漏洞”按钮,以及单条漏洞的“编辑 / 删除”操作,支持在当前任务上下文内直接创建、修改、删除漏洞,并保留“AI生成建议”能力。 - 修复漏洞编辑后任务与资产统计未同步刷新的问题,后端现会在漏洞新增、编辑、删除后同步刷新资产和任务的总数、严重/高危/中危/低危、已修复、未修复等统计字段。 - 将用户管理的用户名搜索、资产管理的系统名称搜索、任务管理的任务名称与测试人员搜索、漏洞管理的漏洞名称/所属资产/所属任务搜索,统一改为可输入的下拉选择框。 - 上述搜索框支持输入关键字后模糊匹配候选项,同时保留下拉直接点选的交互方式,提升筛选效率与一致性。 ### 2026-03-26 - 系统管理-用户管理搜索区增加角色筛选框、状态筛选框,并同步补齐前后端查询参数与筛选逻辑。 - 首页新增两块趋势看板,使用折线图展示当月漏洞增长趋势和当月漏洞修复趋势,位置调整到最近任务和最近漏洞上方。 - 首页最近任务中的状态列、最近漏洞中的风险等级列调整为更合理的列宽和居中对齐,避免右侧标签显示过于靠左。 - 系统管理-用户管理搜索区新增用户名搜索框、所属单位搜索框,取消关键词搜索和角色筛选。 - 用户管理后端查询同步调整,用户名与所属单位均按当前页面条件查询,其中所属单位支持模糊搜索。 - 同步清理资产管理、任务管理、漏洞管理、用户管理中已移除搜索/筛选框的前后端残留查询参数,保持页面、接口、后端查询逻辑一致。 - 任务管理中的测试人员搜索改为独立按测试人员姓名模糊匹配,不再依赖用户列表页旧查询字段。 - AI 对话中的漏洞选择列表改为按漏洞名称字段查询,兼容新的漏洞检索参数。 - 漏洞管理列表新增所属任务字段。 - 调整漏洞管理搜索区,改为漏洞名称、所属资产、所属任务、风险等级、修复状态 5 个搜索项,其中所属资产和所属任务为名称搜索框。 - 取消漏洞管理中的关键词搜索框、漏洞类型搜索框、旧的风险等级筛选框和修复状态筛选框。 - 漏洞管理页面取消漏洞类型字段展示,包括列表、编辑弹窗和详情抽屉。 - 补齐漏洞列表后端查询能力,新增漏洞名称单独查询字段,并支持按所属资产名称、所属任务名称、风险等级、修复状态组合筛选。 - 调整资产管理搜索区,将业务板块、类目、系统归属 3 个搜索项改为可筛选下拉框。 - 修复资产编辑保存问题,补齐后端 `AssetDTO` 中的类目、系统归属、系统负责人、技术负责人字段,确保编辑后可正常保存。 - 修复新增资产时可能误报“资产编码已存在”的问题,清除前一次编辑残留的隐藏 `assetCode` 表单值。 - 调整任务管理搜索区,改为任务名称、任务类型、测试单位、状态、测试人员 5 个搜索项。 - 取消任务管理中的关键词搜索框和旧的任务状态筛选框。 - 补齐任务列表后端查询能力,新增任务名称、任务类型、测试单位、状态、测试人员搜索,其中测试人员支持按姓名筛任务。 - 修正任务管理中测试人员列字体颜色过浅的问题,改为与测试单位一致的可读文本颜色。 ### 2026-03-25 - 调整资产管理搜索区,改为业务板块、类目、系统名称、系统归属、IP/域名 5 个搜索项。 - 资产管理搜索全部改为模糊匹配,`IP/域名` 支持联合模糊搜索。 - 任务管理中原“分配给”字段统一改名为“测试人员”,并同步到列表、编辑表单、详情抽屉。 - 核查任务管理“漏洞数”展示逻辑,当前红色数字对应严重漏洞数 `criticalVulnCount`。