package services import ( "eta/eta_api/utils/ws" ) var () //func WsAuthenticate() web.FilterFunc { // return func(ctx *context.Context) { // method := ctx.Input.Method() // uri := ctx.Input.URI() // if method == "GET" { // authorization := ctx.Input.Header("authorization") // if authorization == "" { // authorization = ctx.Input.Header("Authorization") // } // if strings.Contains(authorization, ";") { // authorization = strings.Replace(authorization, ";", "$", 1) // } // if authorization == "" { // strArr := strings.Split(uri, "?") // for k, v := range strArr { // fmt.Println(k, v) // } // if len(strArr) > 1 { // authorization = strArr[1] // authorization = strings.Replace(authorization, "Authorization", "authorization", -1) // } // } // if authorization == "" { // utils.FileLog.Error("authorization为空,未授权") // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized) // return // } // tokenStr := authorization // tokenArr := strings.Split(tokenStr, "=") // token := tokenArr[1] // // session, err := system.GetSysSessionByToken(token) // if err != nil { // if utils.IsErrNoRow(err) { // utils.FileLog.Error("authorization已过期") // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized) // return // } // utils.FileLog.Error("authorization查询用户信息失败") // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest) // return // } // if session == nil { // utils.FileLog.Error("会话不存在") // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest) // return // } // //校验token是否合法 // // JWT校验Token和Account // account := utils.MD5(session.UserName) // if !utils.CheckToken(account, token) { // utils.FileLog.Error("authorization校验不合法") // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized) // return // } // if time.Now().After(session.ExpiredTime) { // utils.FileLog.Error("authorization过期法") // ctx.ResponseWriter.WriteHeader(http.StatusUnauthorized) // return // } // admin, err := system.GetSysUserById(session.SysUserId) // if err != nil { // if utils.IsErrNoRow(err) { // utils.FileLog.Error("权限不够") // ctx.ResponseWriter.WriteHeader(http.StatusForbidden) // return // } // utils.FileLog.Error("获取用户信息失败") // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest) // return // } // if admin == nil { // utils.FileLog.Error("权限不够") // ctx.ResponseWriter.WriteHeader(http.StatusForbidden) // return // } // //如果不是启用状态 // if admin.Enabled != 1 { // utils.FileLog.Error("用户被禁用") // ctx.ResponseWriter.WriteHeader(http.StatusForbidden) // return // } // // //接口权限校验 // roleId := admin.RoleId // list, e := system.GetMenuButtonApisByRoleId(roleId) // if e != nil { // utils.FileLog.Error("接口权限查询出错", e) // ctx.ResponseWriter.WriteHeader(http.StatusForbidden) // return // } // var api string // for _, v := range list { // if v.Api != "" { // api += v.Api + "&" // } // } // api += "&" + models.BusinessConfMap["PublicApi"] // //处理uri请求,去除前缀和参数 // api = strings.TrimRight(api, "&") // uri = strings.Replace(uri, "/adminapi", "", 1) // uris := strings.Split(uri, "?") // uri = uris[0] // //fmt.Println("uri:", uri) // apis := strings.Split(api, "&") // apiMap := make(map[string]bool, 0) // for _, s := range apis { // apiMap[s] = true // } // if !apiMap[uri] { // utils.FileLog.Error("用户无权访问") // ctx.ResponseWriter.WriteHeader(http.StatusForbidden) // return // } // ctx.Input.SetData("admin", admin) // } else { // utils.FileLog.Error("请求方法类型错误") // ctx.ResponseWriter.WriteHeader(http.StatusBadRequest) // return // } // } //} func StartSessionManager() { ws.GetInstance().Start() }