2025-02-06 11:14:33 +08:00
|
|
|
package middleware
|
|
|
|
|
|
|
|
|
|
import (
|
2025-02-27 15:05:34 +08:00
|
|
|
"go-admin/common/actions"
|
|
|
|
|
|
2025-02-06 11:14:33 +08:00
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
"github.com/go-admin-team/go-admin-core/sdk"
|
|
|
|
|
jwt "github.com/go-admin-team/go-admin-core/sdk/pkg/jwtauth"
|
2025-02-27 15:05:34 +08:00
|
|
|
|
|
|
|
|
"github.com/gin-contrib/cors"
|
2025-02-06 11:14:33 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
const (
|
|
|
|
|
JwtTokenCheck string = "JwtToken"
|
|
|
|
|
RoleCheck string = "AuthCheckRole"
|
|
|
|
|
PermissionCheck string = "PermissionAction"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func InitMiddleware(r *gin.Engine) {
|
|
|
|
|
r.Use(DemoEvn())
|
2025-02-27 15:05:34 +08:00
|
|
|
r.Use(cors.New(cors.Config{
|
|
|
|
|
AllowOrigins: []string{"*"}, // 允许所有
|
|
|
|
|
AllowMethods: []string{"GET", "POST", "PUT", "DELETE"}, // 允许的方法
|
|
|
|
|
AllowHeaders: []string{"Origin", "Content-Length", "Content-Type", "Authorization", "Accept-Language"},
|
|
|
|
|
ExposeHeaders: []string{"Content-Length", "Authorization"},
|
|
|
|
|
AllowCredentials: true, // 允许携带 cookie
|
|
|
|
|
}))
|
2025-02-06 11:14:33 +08:00
|
|
|
// 数据库链接
|
|
|
|
|
r.Use(WithContextDb)
|
|
|
|
|
// 日志处理
|
|
|
|
|
r.Use(LoggerToFile())
|
|
|
|
|
// 自定义错误处理
|
|
|
|
|
r.Use(CustomError)
|
|
|
|
|
// NoCache is a middleware function that appends headers
|
|
|
|
|
r.Use(NoCache)
|
|
|
|
|
// 跨域处理
|
|
|
|
|
r.Use(Options)
|
|
|
|
|
// Secure is a middleware function that appends security
|
|
|
|
|
r.Use(Secure)
|
|
|
|
|
// 链路追踪
|
|
|
|
|
//r.Use(middleware.Trace())
|
|
|
|
|
sdk.Runtime.SetMiddleware(JwtTokenCheck, (*jwt.GinJWTMiddleware).MiddlewareFunc)
|
|
|
|
|
sdk.Runtime.SetMiddleware(RoleCheck, AuthCheckRole())
|
|
|
|
|
sdk.Runtime.SetMiddleware(PermissionCheck, actions.PermissionAction())
|
|
|
|
|
}
|