feat: rbac迁移完成,并已部署至dev服务器
This commit is contained in:
@@ -0,0 +1,68 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
|
||||
"sundynix-micro-go/app/system/rpc/systemservice"
|
||||
"sundynix-micro-go/app/zero-gateway/internal/config"
|
||||
"sundynix-micro-go/app/zero-gateway/internal/middleware"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/conf"
|
||||
"github.com/zeromicro/go-zero/core/logx"
|
||||
"github.com/zeromicro/go-zero/core/stat"
|
||||
"github.com/zeromicro/go-zero/gateway"
|
||||
"github.com/zeromicro/go-zero/rest"
|
||||
"github.com/zeromicro/go-zero/zrpc"
|
||||
)
|
||||
|
||||
var configFile = flag.String("f", "etc/zero-gateway.yaml", "the config file")
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
stat.DisableLog()
|
||||
|
||||
var c config.Config
|
||||
conf.MustLoad(*configFile, &c)
|
||||
|
||||
// 初始化 system-rpc 客户端(用于异步写入操作日志)
|
||||
systemRpc := systemservice.NewSystemService(zrpc.MustNewClient(c.SystemRpc))
|
||||
|
||||
// 构建各中间件实例
|
||||
corsMiddleware := middleware.NewCorsMiddleware(
|
||||
c.Cors.AllowOrigins,
|
||||
c.Cors.AllowMethods,
|
||||
c.Cors.AllowHeaders,
|
||||
)
|
||||
authMiddleware := middleware.NewAuthMiddleware(c.JwtSecret, c.AuthWhitelist)
|
||||
opLogMiddleware := middleware.NewOperationLogMiddleware(systemRpc, c.JwtSecret)
|
||||
|
||||
// 构建官方 Gateway,注入中间件(执行顺序:CORS → Auth → OpLog → 上游转发)
|
||||
gw := gateway.MustNewServer(c.GatewayConf,
|
||||
gateway.WithMiddleware(
|
||||
rest.Middleware(corsMiddleware.Handle), // 跨域
|
||||
rest.Middleware(authMiddleware.Handle), // JWT 鉴权
|
||||
rest.Middleware(opLogMiddleware.Handle), // 操作日志(异步写入 system-rpc)
|
||||
),
|
||||
)
|
||||
defer gw.Stop()
|
||||
|
||||
fmt.Println("===== Sundynix Zero-Gateway (Official) =====")
|
||||
logx.Infof("监听地址: %s:%d", c.Host, c.Port)
|
||||
logx.Infof("上游服务: %d 个", len(c.Upstreams))
|
||||
logx.Infof("中间件: CORS | JWT鉴权 | 操作日志→system-rpc")
|
||||
logx.Infof("鉴权白名单: %d 条", len(c.AuthWhitelist))
|
||||
for _, u := range c.Upstreams {
|
||||
if u.Http.Target != "" {
|
||||
logx.Infof(" [HTTP] %-15s -> %s (prefix: %s, routes: %d)",
|
||||
u.Name, u.Http.Target, u.Http.Prefix, len(u.Mappings))
|
||||
}
|
||||
if u.Grpc.Target != "" {
|
||||
logx.Infof(" [gRPC] %-15s -> %s (routes: %d)",
|
||||
u.Name, u.Grpc.Target, len(u.Mappings))
|
||||
}
|
||||
}
|
||||
fmt.Println("=============================================")
|
||||
|
||||
gw.Start()
|
||||
}
|
||||
Reference in New Issue
Block a user