kabilesh-c/Flux-Guard-Java
GitHub: kabilesh-c/Flux-Guard-Java
一套基于 Spring Boot 与 React 的生产级实时反欺诈引擎,利用动态规则引擎实现交易风险评分与即时阻断。
Stars: 0 | Forks: 0
# Flux-Guard-Java
## 摘要
一个生产级的实时欺诈检测系统,旨在通过智能规则分析、实时监控和全面分析来识别和预防欺诈交易。该系统提供即时交易评估、可定制的欺诈检测规则、实时警报和详细的报告功能。
## 系统能力
- **实时交易处理**:即时摄取和评估金融交易
- **基于规则的欺诈检测**:具有动态风险评分的可定制规则引擎
- **实时警报系统**:基于 WebSocket 的可疑活动实时通知
- **管理员仪表盘**:包含图表、KPI 和交易洞察的全面分析
- **规则管理**:用于创建和管理欺诈检测逻辑的可视化规则编辑器
- **审计追踪**:包含详细评估细分的完整交易历史
- **重试与重置机制**:人工审查和重新评估功能
## 非功能性目标
- **延迟目标**:< 200ms 交易评估时间
- **SLA**:99.9% 的交易处理正常运行时间
- **安全性**:JWT 认证、基于角色的访问控制、加密数据传输
- **可扩展性**:设计用于通过异步处理能力进行水平扩展
## 技术栈
### 后端
- **Java 17+** 与 Spring Boot 3.x
- **Spring Web, Data JPA, Security, WebSocket**
- **PostgreSQL** (托管在 Supabase)
- **Flyway** 用于数据库迁移
- **MapStruct** 用于 DTO 映射
- **Lombok** 用于减少样板代码
- **SpringDoc OpenAPI** 用于 API 文档
### 前端
- **React 18+** 与 TypeScript
- **TailwindCSS** 用于样式设计
- **Recharts** 用于数据可视化
- **React Router** 用于导航
- **Zustand** 用于状态管理
- **WebSocket** 客户端用于实时更新
- **Axios** 用于 API 通信
### DevOps
- **Docker** 用于容器化
- **GitHub Actions** 用于 CI/CD
- **Supabase** 用于数据库和认证
- **Render/Railway** 用于后端托管
- **Vercel/Netlify** 用于前端托管
## 项目结构
```
fraud-detection/
├── backend/ # Spring Boot application
│ ├── src/
│ │ ├── main/
│ │ │ ├── java/com/fraud/detection/
│ │ │ │ ├── config/ # Configuration classes
│ │ │ │ ├── controller/ # REST controllers
│ │ │ │ ├── dto/ # Data Transfer Objects
│ │ │ │ ├── entity/ # JPA entities
│ │ │ │ ├── repository/ # Data repositories
│ │ │ │ ├── service/ # Business logic
│ │ │ │ ├── rules/ # Rule engine components
│ │ │ │ ├── websocket/ # WebSocket handlers
│ │ │ │ └── security/ # Security configuration
│ │ │ └── resources/
│ │ │ ├── db/migration/ # Flyway migrations
│ │ │ └── application.yml # Application config
│ │ └── test/ # Unit & integration tests
│ ├── Dockerfile
│ └── pom.xml
│
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # Reusable UI components
│ │ ├── pages/ # Page components
│ │ ├── utils/ # Utilities (API, WebSocket)
│ │ ├── state/ # State management
│ │ ├── types/ # TypeScript types
│ │ └── styles/ # Global styles
│ ├── public/
│ ├── Dockerfile
│ ├── package.json
│ └── tailwind.config.js
│
├── docker-compose.yml # Local development setup
├── .github/workflows/ # CI/CD pipelines
└── docs/ # Additional documentation
```
## 功能与模块
### 1. 交易输入模块
- 用于交易摄取的 REST API
- 客户端和服务器端验证
- 支持批量上传和单笔交易
- 字段:交易 ID、用户 ID、金额、货币、账户、地理位置、设备指纹
### 2. 处理与验证模块
- 数据标准化和丰富
- 历史特征计算(速度、平均值)
- 黑名单检查
- 速率限制和节流
### 3. 欺诈逻辑模块(核心)
- 带有表达式解析器的自定义规则引擎
- 风险评分算法(加权规则聚合)
- 规则评估审计追踪
- 支持复杂条件(AND, OR, 时间窗口)
- 可配置阈值(APPROVE/REVIEW/REJECT)
### 4. 警报与通知模块
- 实时 WebSocket 警报
- 邮件/短信集成(可选)
- 警报管理(已读、忽略、批量操作)
- 基于严重性的路由
### 5. 报告与仪表盘模块
- KPI 卡片(总交易数、标记比例、平均风险)
- 时间序列图表(随时间变化的交易量)
- 风险评分分布
- 顶级可疑账户
- 可筛选的交易表格
### 6. 输出与反馈模块
- 带有时间线的交易详情视图
- 规则评估细分
- 管理员操作按钮(批准、拒绝、标记为误报)
- 重试和重置功能
## 数据库 Schema
### 核心表
- **transactions**:带有风险评分和状态的交易记录
- **users**:用户账户和配置文件
- **rules**:带有表达式的欺诈检测规则
- **rule_evaluations**:规则匹配的审计追踪
- **alerts**:带有状态跟踪的警报记录
- **audit_logs**:系统和管理员操作日志
### 物化视图
- **txn_agg_by_hour**:用于仪表盘的每小时聚合指标
## API 端点
### 认证
- `POST /api/auth/login` - 用户登录(返回 JWT)
- `POST /api/auth/register` - 管理员注册
### 交易
- `POST /api/transactions` - 摄取新交易
- `GET /api/transactions/{id}` - 获取交易详情
- `GET /api/transactions` - 列出交易(分页、可筛选)
- `POST /api/transactions/{id}/retry` - 重新评估交易
- `POST /api/transactions/{id}/reset` - 重置交易状态
### 规则
- `GET /api/rules` - 列出所有规则
- `POST /api/rules` - 创建新规则
- `PUT /api/rules/{id}` - 更新规则
- `DELETE /api/rules/{id}` - 删除规则
- `GET /api/rules/{id}/test` - 针对样本数据测试规则
### 仪表盘
- `GET /api/dashboard/summary` - 获取 KPI 摘要
- `GET /api/dashboard/time-series` - 获取时间序列数据
- `GET /api/dashboard/risk-distribution` - 获取风险评分分布
### WebSocket
- `CONNECT /ws` - WebSocket 连接
- `SUBSCRIBE /topic/alerts` - 订阅全局警报
- `SUBSCRIBE /user/queue/alerts` - 订阅用户特定警报
## 快速开始
### 前置条件
- Java 17+
- Node.js 18+
- Docker & Docker Compose
- PostgreSQL (或 Supabase 账户)
### 本地开发
1. **克隆仓库**
```
git clone
cd fraud-detection
```
2. **设置环境变量**
```
# Backend (backend/ 中的 .env)
DB_URL=jdbc:postgresql://localhost:5432/fraud_detection
DB_USER=postgres
DB_PASS=your_password
JWT_SECRET=your_jwt_secret
SUPABASE_URL=your_supabase_url
SUPABASE_KEY=your_supabase_key
# Frontend (frontend/ 中的 .env)
VITE_API_URL=http://localhost:8080
VITE_WS_URL=ws://localhost:8080/ws
```
3. **使用 Docker Compose 启动**
```
docker-compose up -d
```
4. **或手动运行**
后端:
```
cd backend
./mvnw spring-boot:run
```
前端:
```
cd frontend
npm install
npm run dev
```
5. **访问应用**
- 前端:http://localhost:5173
- 后端 API:http://localhost:8080
- API 文档:http://localhost:8080/swagger-ui.html
### 默认管理员凭据
- 用户名:`admin@fraud-detection.com`
- 密码:`Admin@123`
## 规则表达式示例
```
{
"id": "rule_high_amount",
"name": "High Amount Single Transaction",
"description": "Flags transactions above $10,000",
"expression": "amount > 10000 AND currency == 'USD'",
"weight": 85,
"severity": "HIGH",
"action": "REJECT",
"active": true
}
```
```
{
"id": "rule_velocity",
"name": "Rapid Transaction Velocity",
"description": "Flags users with >10 transactions in 1 hour",
"expression": "txn_count_last_1h > 10",
"weight": 70,
"severity": "MEDIUM",
"action": "FLAG",
"active": true
}
```
## 风险评分算法
1. 根据交易评估所有活动规则
2. 对触发规则的权重求和
3. 应用惩罚因子(新设备、异常位置等)
4. 标准化为 0-100 刻度
5. 应用阈值:
- **0-49**:APPROVED(低风险)
- **50-79**:FLAGGED(人工审查)
- **80-100**:REJECTED(高风险)
## 安全特性
- 基于 JWT 的认证
- 基于角色的访问控制(ADMIN, USER)
- 参数化 SQL 查询(JPA)
- 安全的表达式评估(无任意代码执行)
- 摄取 API 的速率限制
- 强制 HTTPS
- CORS 配置
- 输入验证和净化
## 性能优化
- 频繁查询列上的数据库索引
- 用于仪表盘聚合的物化视图
- 内存规则缓存
- 连接池
- 非关键操作的异步处理
- 批量更新的批处理操作
## 测试
```
# Backend 测试
cd backend
./mvnw test
# Frontend 测试
cd frontend
npm test
# E2E 测试
npm run test:e2e
```
## 部署
### 后端
1. 连接 GitHub 仓库
2. 设置环境变量
3. 从 `main` 分支部署
4. 自动运行 Flyway 迁移
### 前端
1. 连接 GitHub 仓库
2. 设置构建命令:`npm run build`
3. 设置输出目录:`dist`
4. 从 `main` 分支部署
### 数据库
1. 创建新项目
2. 复制连接字符串
3. 通过 Flyway 或 Supabase 仪表盘运行迁移
## 未来增强功能(第二阶段)
- **机器学习集成**:基于 ML 的欺诈评分
- **高级分析**:异常检测、模式识别
- **多租户支持**:为不同组织提供隔离环境
- **外部集成**:第三方风险评分 API
- **移动应用**:React Native 移动应用程序
- **区块链集成**:不可篡改的审计追踪
## 贡献
请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 以了解我们的行为准则以及提交 Pull Request 的流程详情。
## 许可证
本项目基于 MIT 许可证授权 - 详情请参阅 [LICENSE](LICENSE) 文件。
## 支持
如有问题和疑问:
- GitHub Issues:[创建 issue](https://github.com/your-org/fraud-detection/issues)
- 邮箱:support@fraud-detection.com
- 文档:[Wiki](https://github.com/your-org/fraud-detection/wiki)
## 致谢
- Spring Boot 团队提供的优秀框架
- React 社区提供的前端工具
- Supabase 提供的数据库和认证服务
标签:Docker, FinTech, Flyway, Java 17, JS文件枚举, JWT 认证, MapStruct, PostgreSQL, RBAC, React, Spring Boot 3, Spring Security, Supabase, Syscalls, TailwindCSS, TypeScript, WebSocket, Web 应用, Zustand, 云计算, 交易分析, 仪表盘, 低延迟, 依赖分析, 反欺诈系统, 域名枚举, 域名枚举, 子域名枚举, 安全插件, 安全防御评估, 审计日志, 异常检测, 微服务架构, 欺诈检测, 测试用例, 系统安全, 规则引擎, 请求拦截, 金融科技, 风控引擎, 风险控制