init.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package middleware
  2. import (
  3. "IotAdmin/common/middleware/handler"
  4. "IotAdmin/core/sdk/api"
  5. "IotAdmin/core/sdk/config"
  6. "IotAdmin/core/sdk/pkg"
  7. "IotAdmin/core/sdk"
  8. jwt "IotAdmin/core/sdk/pkg/jwt-auth"
  9. "github.com/gin-gonic/gin"
  10. )
  11. const (
  12. JwtTokenCheck string = "JwtToken"
  13. RoleCheck string = "AuthCheckRole"
  14. PermissionCheck string = "SetDataPermission"
  15. )
  16. // UseGinMiddleware 注册gin中间件
  17. func UseGinMiddleware(r *gin.Engine) {
  18. if config.SslConfig.Enable {
  19. r.Use(handler.TlsHandler())
  20. }
  21. //r.Use(middleware.Metrics())
  22. r.Use(Sentinel()).
  23. Use(RequestId(pkg.TrafficKey)).
  24. Use(api.SetRequestLogger)
  25. // 数据库链接
  26. r.Use(WithContextDb)
  27. // 日志处理
  28. r.Use(LoggerToFile)
  29. // 自定义错误处理
  30. r.Use(CustomError)
  31. // NoCache is a middleware function that appends headers
  32. r.Use(NoCache)
  33. // 跨域处理
  34. r.Use(Options)
  35. // Secure is a middleware function that appends security
  36. r.Use(Secure)
  37. // 链路追踪
  38. //r.Use(middleware.Trace())
  39. sdk.Runtime.SetMiddleware(JwtTokenCheck, (*jwt.GinJWTMiddleware).MiddlewareFunc)
  40. sdk.Runtime.SetMiddleware(RoleCheck, AuthCheckRole())
  41. sdk.Runtime.SetMiddleware(PermissionCheck, SetDataPermission())
  42. }