Skip to content

Commit dbdd2d1

Browse files
authored
feat:backend add router global prefix (flipped-aurora#1333)
* feat:backend add router global prefix * feat: global prefix in plugin router * feat: remove plugin router prefix and add web router setting
1 parent b3c4be6 commit dbdd2d1

File tree

6 files changed

+23
-7
lines changed

6 files changed

+23
-7
lines changed

server/config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ system:
4545
iplimit-count: 15000
4646
# IP限制一个小时
4747
iplimit-time: 3600
48+
# 路由全局前缀
49+
router-prefix: ""
4850

4951
# captcha configuration
5052
captcha:

server/config/system.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,5 @@ type System struct {
99
UseRedis bool `mapstructure:"use-redis" json:"use-redis" yaml:"use-redis"` // 使用redis
1010
LimitCountIP int `mapstructure:"iplimit-count" json:"iplimit-count" yaml:"iplimit-count"`
1111
LimitTimeIP int `mapstructure:"iplimit-time" json:"iplimit-time" yaml:"iplimit-time"`
12+
RouterPrefix string `mapstructure:"router-prefix" json:"router-prefix" yaml:"router-prefix"`
1213
}

server/initialize/plugin.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package initialize
22

33
import (
44
"fmt"
5+
56
"github.com/flipped-aurora/gin-vue-admin/server/global"
67
"github.com/flipped-aurora/gin-vue-admin/server/middleware"
78
"github.com/flipped-aurora/gin-vue-admin/server/plugin/email"

server/initialize/router.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@ package initialize
33
import (
44
"net/http"
55

6-
_ "github.com/flipped-aurora/gin-vue-admin/server/docs"
6+
"github.com/flipped-aurora/gin-vue-admin/server/docs"
77
"github.com/flipped-aurora/gin-vue-admin/server/global"
88
"github.com/flipped-aurora/gin-vue-admin/server/middleware"
99
"github.com/flipped-aurora/gin-vue-admin/server/router"
1010
"github.com/gin-gonic/gin"
11-
"github.com/swaggo/gin-swagger"
11+
ginSwagger "github.com/swaggo/gin-swagger"
1212
"github.com/swaggo/gin-swagger/swaggerFiles"
1313
)
1414

@@ -33,11 +33,12 @@ func Routers() *gin.Engine {
3333
// Router.Use(middleware.Cors()) // 直接放行全部跨域请求
3434
// Router.Use(middleware.CorsByRules()) // 按照配置的规则放行跨域请求
3535
//global.GVA_LOG.Info("use middleware cors")
36-
Router.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
36+
docs.SwaggerInfo.BasePath = global.GVA_CONFIG.System.RouterPrefix
37+
Router.GET(global.GVA_CONFIG.System.RouterPrefix+"/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
3738
global.GVA_LOG.Info("register swagger handler")
3839
// 方便统一添加路由组前缀 多服务器上线使用
3940

40-
PublicGroup := Router.Group("")
41+
PublicGroup := Router.Group(global.GVA_CONFIG.System.RouterPrefix)
4142
{
4243
// 健康监测
4344
PublicGroup.GET("/health", func(c *gin.Context) {
@@ -48,7 +49,7 @@ func Routers() *gin.Engine {
4849
systemRouter.InitBaseRouter(PublicGroup) // 注册基础功能路由 不做鉴权
4950
systemRouter.InitInitRouter(PublicGroup) // 自动初始化相关
5051
}
51-
PrivateGroup := Router.Group("")
52+
PrivateGroup := Router.Group(global.GVA_CONFIG.System.RouterPrefix)
5253
PrivateGroup.Use(middleware.JWTAuth()).Use(middleware.CasbinHandler())
5354
{
5455
systemRouter.InitApiRouter(PrivateGroup) // 注册功能api路由

server/middleware/casbin_rbac.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
package middleware
22

33
import (
4+
"strconv"
5+
"strings"
6+
47
"github.com/flipped-aurora/gin-vue-admin/server/global"
58
"github.com/flipped-aurora/gin-vue-admin/server/model/common/response"
69
"github.com/flipped-aurora/gin-vue-admin/server/service"
710
"github.com/flipped-aurora/gin-vue-admin/server/utils"
811
"github.com/gin-gonic/gin"
9-
"strconv"
1012
)
1113

1214
var casbinService = service.ServiceGroupApp.SystemServiceGroup.CasbinService
@@ -17,7 +19,8 @@ func CasbinHandler() gin.HandlerFunc {
1719
if global.GVA_CONFIG.System.Env != "develop" {
1820
waitUse, _ := utils.GetClaims(c)
1921
//获取请求的PATH
20-
obj := c.Request.URL.Path
22+
path := c.Request.URL.Path
23+
obj := strings.TrimPrefix(path, global.GVA_CONFIG.System.RouterPrefix)
2124
// 获取请求方法
2225
act := c.Request.Method
2326
// 获取用户的角色

web/src/view/systemTools/system/system.vue

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,14 @@
4141
<el-form-item label="限流时间">
4242
<el-input-number v-model.number="config.system['iplimit-time']" />
4343
</el-form-item>
44+
<el-tooltip
45+
content="请修改完成后,注意一并修改前端env环境下的VITE_BASE_PATH"
46+
placement="top-start"
47+
>
48+
<el-form-item label="全局路由前缀">
49+
<el-input v-model="config.system['router-prefix']" />
50+
</el-form-item>
51+
</el-tooltip>
4452
</el-collapse-item>
4553
<el-collapse-item title="jwt签名" name="2">
4654
<el-form-item label="jwt签名">

0 commit comments

Comments
 (0)