# SentinelX **Repository Path**: BeiTianJun/SentinelX ## Basic Information - **Project Name**: SentinelX - **Description**: 基于Java和Drools规则引擎的智能风控平台,提供实时风险评估和决策能力。 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-25 - **Last Updated**: 2026-02-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SentinelX 智能风控平台 基于Java和Drools规则引擎的智能风控平台,提供实时风险评估和决策能力。 ## 项目结构 ``` SentinelX/ ├── src/ │ ├── main/ │ │ ├── java/com/sentinelx/ │ │ │ ├── SentinelXApplication.java # 应用启动类 │ │ │ ├── config/ │ │ │ │ └── DroolsConfig.java # Drools配置 │ │ │ ├── controller/ │ │ │ │ └── RiskController.java # REST API控制器 │ │ │ ├── domain/ │ │ │ │ ├── entity/ # 实体类 │ │ │ │ │ ├── RiskEvent.java # 风控事件实体 │ │ │ │ │ ├── RiskLevel.java # 风险等级枚举 │ │ │ │ │ └── RiskRuleExecution.java # 规则执行记录 │ │ │ │ └── dto/ # 数据传输对象 │ │ │ │ ├── RiskEventRequest.java # 请求DTO │ │ │ │ └── RiskEventResponse.java # 响应DTO │ │ │ ├── repository/ # 数据访问层 │ │ │ │ ├── RiskEventRepository.java │ │ │ │ └── RiskRuleExecutionRepository.java │ │ │ └── service/ # 业务逻辑层 │ │ │ ├── RiskEventService.java # 风控事件服务 │ │ │ └── DroolsRuleEngineService.java # Drools引擎服务 │ │ └── resources/ │ │ ├── application.yml # 应用配置 │ │ ├── META-INF/ │ │ │ └── kmodule.xml # Drools KIE模块配置 │ │ └── rules/ │ │ └── risk-control-rules.drl # 风控规则文件 │ └── test/ │ └── java/com/sentinelx/ │ ├── controller/ │ │ └── RiskControllerTest.java # 控制器测试 │ └── service/ │ └── RiskEventServiceTest.java # 服务测试 ├── pom.xml # Maven配置文件 └── .gitignore ``` ## 核心功能 ### 1. 风控规则引擎 - **大额交易检测**: 检测超过阈值的交易 - **高频交易检测**: 检测短时间内频繁交易 - **异常IP检测**: 检测同一IP的异常交易行为 - **新用户大额交易检测**: 检测新用户的大额交易 - **单日交易金额超限检测**: 检测单日累计交易金额 - **夜间大额交易检测**: 检测凌晨时段的大额交易 ### 2. 风险等级 - **LOW (低风险)**: 0-30分 - **MEDIUM (中风险)**: 30-60分 - **HIGH (高风险)**: 60-80分 - **CRITICAL (极高风险)**: 80-100分 ### 3. 决策结果 - **PASS**: 通过 - **REVIEW**: 人工审核 - **REJECT**: 拒绝 ## 技术栈 - **Java 11** - **Spring Boot 2.7.18** - **Drools 8.44.0.Final** - 规则引擎 - **Spring Data JPA** - 数据持久化 - **H2 Database** - 内存数据库 - **Lombok** - 简化代码 - **JUnit 5** - 单元测试 ## 快速开始 ### 1. 构建项目 ```bash mvn clean install ``` ### 2. 运行应用 ```bash mvn spring-boot:run ``` ### 3. API测试 #### 风控评估 ```bash curl -X POST http://localhost:8080/api/risk/evaluate \ -H "Content-Type: application/json" \ -d '{ "eventType": "PAYMENT", "userId": "user001", "deviceId": "device001", "ipAddress": "192.168.1.1", "userAgent": "Mozilla/5.0", "amount": 50000.0, "currency": "CNY", "eventTime": "2026-02-18T10:00:00" }' ``` #### 查询风控事件 ```bash curl http://localhost:8080/api/risk/events/{eventId} ``` #### 健康检查 ```bash curl http://localhost:8080/api/risk/health ``` ## 运行测试 ```bash mvn test ``` ## H2数据库控制台 访问: http://localhost:8080/api/h2-console - JDBC URL: `jdbc:h2:mem:sentinelx` - 用户名: `sa` - 密码: (空) ## 自定义规则 在 `src/main/resources/rules/risk-control-rules.drl` 中添加自定义Drools规则。 规则示例: ```drools rule "自定义规则名称" when $event: RiskEvent(条件表达式) then // 执行逻辑 $event.setRiskScore($event.getRiskScore() + score); end ``` ## 配置说明 在 `application.yml` 中可以配置: - 服务器端口 - 数据库连接 - Drools规则路径 - 缓存配置 - 日志级别 ## 扩展建议 1. **规则管理**: 添加规则管理界面,支持动态加载规则 2. **数据持久化**: 切换到MySQL/PostgreSQL等生产数据库 3. **监控告警**: 集成Prometheus/Grafana进行监控 4. **API限流**: 添加API限流和熔断机制 5. **规则版本管理**: 支持规则版本控制和回滚 6. **机器学习**: 集成ML模型进行智能评分 7. **实时流处理**: 集成Kafka/Flink进行实时风控