ws_service.go 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. package services
  2. import (
  3. "eta/eta_api/utils/ws"
  4. )
  5. var ()
  6. //func WsAuthenticate() web.FilterFunc {
  7. // return func(ctx *context.Context) {
  8. // method := ctx.Input.Method()
  9. // uri := ctx.Input.URI()
  10. // if method == "GET" {
  11. // authorization := ctx.Input.Header("authorization")
  12. // if authorization == "" {
  13. // authorization = ctx.Input.Header("Authorization")
  14. // }
  15. // if strings.Contains(authorization, ";") {
  16. // authorization = strings.Replace(authorization, ";", "$", 1)
  17. // }
  18. // if authorization == "" {
  19. // strArr := strings.Split(uri, "?")
  20. // for k, v := range strArr {
  21. // fmt.Println(k, v)
  22. // }
  23. // if len(strArr) > 1 {
  24. // authorization = strArr[1]
  25. // authorization = strings.Replace(authorization, "Authorization", "authorization", -1)
  26. // }
  27. // }
  28. // if authorization == "" {
  29. // utils.FileLog.Error("authorization为空,未授权")
  30. // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized)
  31. // return
  32. // }
  33. // tokenStr := authorization
  34. // tokenArr := strings.Split(tokenStr, "=")
  35. // token := tokenArr[1]
  36. //
  37. // session, err := system.GetSysSessionByToken(token)
  38. // if err != nil {
  39. // if utils.IsErrNoRow(err) {
  40. // utils.FileLog.Error("authorization已过期")
  41. // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized)
  42. // return
  43. // }
  44. // utils.FileLog.Error("authorization查询用户信息失败")
  45. // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest)
  46. // return
  47. // }
  48. // if session == nil {
  49. // utils.FileLog.Error("会话不存在")
  50. // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest)
  51. // return
  52. // }
  53. // //校验token是否合法
  54. // // JWT校验Token和Account
  55. // account := utils.MD5(session.UserName)
  56. // if !utils.CheckToken(account, token) {
  57. // utils.FileLog.Error("authorization校验不合法")
  58. // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized)
  59. // return
  60. // }
  61. // if time.Now().After(session.ExpiredTime) {
  62. // utils.FileLog.Error("authorization过期法")
  63. // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized)
  64. // return
  65. // }
  66. // admin, err := system.GetSysUserById(session.SysUserId)
  67. // if err != nil {
  68. // if utils.IsErrNoRow(err) {
  69. // utils.FileLog.Error("权限不够")
  70. // ctx.ResponseWriter.WriteHeader(http.StatusForbidden)
  71. // return
  72. // }
  73. // utils.FileLog.Error("获取用户信息失败")
  74. // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest)
  75. // return
  76. // }
  77. // if admin == nil {
  78. // utils.FileLog.Error("权限不够")
  79. // ctx.ResponseWriter.WriteHeader(http.StatusForbidden)
  80. // return
  81. // }
  82. // //如果不是启用状态
  83. // if admin.Enabled != 1 {
  84. // utils.FileLog.Error("用户被禁用")
  85. // ctx.ResponseWriter.WriteHeader(http.StatusForbidden)
  86. // return
  87. // }
  88. //
  89. // //接口权限校验
  90. // roleId := admin.RoleId
  91. // list, e := system.GetMenuButtonApisByRoleId(roleId)
  92. // if e != nil {
  93. // utils.FileLog.Error("接口权限查询出错", e)
  94. // ctx.ResponseWriter.WriteHeader(http.StatusForbidden)
  95. // return
  96. // }
  97. // var api string
  98. // for _, v := range list {
  99. // if v.Api != "" {
  100. // api += v.Api + "&"
  101. // }
  102. // }
  103. // api += "&" + models.BusinessConfMap["PublicApi"]
  104. // //处理uri请求,去除前缀和参数
  105. // api = strings.TrimRight(api, "&")
  106. // uri = strings.Replace(uri, "/adminapi", "", 1)
  107. // uris := strings.Split(uri, "?")
  108. // uri = uris[0]
  109. // //fmt.Println("uri:", uri)
  110. // apis := strings.Split(api, "&")
  111. // apiMap := make(map[string]bool, 0)
  112. // for _, s := range apis {
  113. // apiMap[s] = true
  114. // }
  115. // if !apiMap[uri] {
  116. // utils.FileLog.Error("用户无权访问")
  117. // ctx.ResponseWriter.WriteHeader(http.StatusForbidden)
  118. // return
  119. // }
  120. // ctx.Input.SetData("admin", admin)
  121. // } else {
  122. // utils.FileLog.Error("请求方法类型错误")
  123. // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest)
  124. // return
  125. // }
  126. // }
  127. //}
  128. func StartSessionManager() {
  129. ws.GetInstance().Start()
  130. }