# cgi **Repository Path**: arvtie/cgi ## Basic Information - **Project Name**: cgi - **Description**: 公共网关请求授权Demo,实现对开放给第三方的接口用实行授权管理。通过发放appKey和appSecret的方式。可扩展支持接口限流、计费等。 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2025-03-03 - **Last Updated**: 2025-03-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # cgi #### 介绍 公共网关请求授权Demo。通过过滤器的方式实现对开放给第三方的接口用实行授权管理。通过发放appKey和appSecret的方式对用户进行管理。 #### 软件架构 工程为Maven结构,基于Spring boot 2.7.8、Java8搭建。 #### 使用说明 - 项目结构分为两个包:`client`、`server`。 - `client`包下的`ClientTestController`控制器为模拟接口调用方的测试控制器。可作为第三方接口调用的Demo。 - `server`包下的`ServerTestController`控制器为模拟服务端的测试控制器。 - 核心业务逻辑在`server`包下的`cgi`包中。可直接copy整个包到实际代码中再做调整。 1. 调整`CgiFilter`类中的`@WebFilter(urlPatterns = {"/server/*"})`,根据实际业务修改。 2. `CgiBillingHandler`和`CgiLimitingHandler`分别是接口计费和接口限流,可自行实现。也可在`CgiHandler`类中的`afterPropertiesSet`函数中自行添加扩展。 **注意顺序** 。 3. `CgiSignHandler`类中的`testDB`函数是模拟数据的函数,实际场景应该做持久化,需要做相应调整。 4. 基于过滤器实现,请不要忘记了在启动类`CgiApplication`中添加`@ServletComponentScan`注解。 - `SignUtil`和`HttpRequestUtil`可直接提供给接口调用方。