# garona **Repository Path**: parselife/garona ## Basic Information - **Project Name**: garona - **Description**: 基于spring cloud gateway 封装的API网关组件 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-01-19 - **Last Updated**: 2026-03-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: api网关, Spring, Gateway ## README # garona 基于 `spring-cloud-gateway` 实现的 `API` 动态网关组件,支持多种路由配置方式和多种服务鉴权模式,开箱即用 ## Features - 支持三种路由配置方式,注册中心/文件/数据库 - 支持三种网关鉴权模式,`api key`/`basic`/`jwt` - 开箱即用秒接入 ## Usage ### 路由配置 - [x] 支持`nacos`同步路由配置 - [x] 支持本地文件(`json`)同步路由配置 - [x] 支持关系数据库表同步路由配置(PG/MySQL/H2) ### 网关鉴权 支持以下几种认证模式: - `api_key`: api key 认证,在路由配置里设置允许的 client 信息 - `basic_auth`: basic 认证,在路由配置里设置允许的用户信息 - `bearer_token`: jwt token认证以及鉴权,需要在路由配置里提供认证服务url 路由配置示例: ```json [ { "id": "gscp-service", "order": 5, "uri": "http://127.0.0.1:9800", "filters": [ { "name": "StripPrefix", "args": { "parts": 1 } }, { "name": "BearerToken", "args": { "ignorePattern": "/demo/**", "api.url": "http://127.0.0.1:9400/api/getUserInfo", "api.header-keys": "*", "resources[0].method": "*", "resources[0].expression": "permitAll", "resources[1].method": "DELETE", "resources[1].expression": "hasRole(ADMIN)" } } ], "predicates": [ { "args": { "pattern": "/gscp/**" }, "name": "Path" } ] }, { "id": "exam-api", "order": 7, "uri": "http://127.0.0.1:8025", "filters": [ { "name": "StripPrefix", "args": { "parts": 1 } }, { "name": "BasicAuth", "args": { "ignorePattern": "/exam/api/**", "users.test": "123456", "users.admin": "qwertty" } } ], "predicates": [ { "args": { "pattern": "/ex/**" }, "name": "Path" } ] } ] ``` 限流过滤器(配置在路由的 `filters` 中): ```json { "name": "RequestRateLimiter", "args": { "rate-limiter": "#{@localRateLimiter}", "key-resolver": "#{@hostNameKeyResolver}" } } ``` 限流参数设置,在当前路由的 `metadata` 中设置: ```json "metadata": { "localRateLimiter": { "refreshPeriod": 2, "replenishRate": 4 } } ```