MCPcopy Create free account
hub / github.com/GoSimplicity/LinkMe / InitMiddlewares

Function InitMiddlewares

ioc/middleware.go:16–60  ·  view source on GitHub ↗

InitMiddlewares 初始化中间件

(ih ijwt.Handler, l *zap.Logger)

Source from the content-addressed store, hash-verified

14
15// InitMiddlewares 初始化中间件
16func InitMiddlewares(ih ijwt.Handler, l *zap.Logger) []gin.HandlerFunc {
17 prom := &prometheus.MetricsPlugin{
18 Namespace: "linkme",
19 Subsystem: "api",
20 InstanceID: "instance_1",
21 }
22
23 // 注册指标
24 prom.RegisterMetrics()
25
26 corsConfig := cors.Config{
27 AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "PATCH", "OPTIONS"},
28 AllowCredentials: true,
29 AllowHeaders: []string{"Content-Type", "Authorization", "X-Refresh-Token", "X-Request-ID"},
30 ExposeHeaders: []string{"x-jwt-token", "x-refresh-token"},
31 MaxAge: 12 * time.Hour,
32 }
33
34 if viper.GetBool("cors.allow_all") {
35 corsConfig.AllowAllOrigins = true
36 } else {
37 allowedOrigins := viper.GetStringSlice("cors.allow_origins")
38 corsConfig.AllowOriginFunc = func(origin string) bool {
39 if origin == "" {
40 return true
41 }
42 for _, item := range allowedOrigins {
43 if item == origin {
44 return true
45 }
46 }
47 return false
48 }
49 }
50
51 return []gin.HandlerFunc{
52 cors.New(corsConfig),
53 // 统计响应时间
54 prom.TrackActiveRequestsMiddleware(),
55 // 统计活跃请求数
56 prom.TrackResponseTimeMiddleware(),
57 middleware.NewJWTMiddleware(ih).CheckLogin(),
58 middleware.NewLogMiddleware(l).Log(),
59 }
60}

Callers 1

InitWebServerFunction · 0.85

Calls 7

RegisterMetricsMethod · 0.95
NewJWTMiddlewareFunction · 0.92
NewLogMiddlewareFunction · 0.92
CheckLoginMethod · 0.80
LogMethod · 0.80

Tested by

no test coverage detected