diff --git a/lib/core/utils/ctx/ctx.go b/lib/core/utils/ctx/ctx.go index dac758b1..2fed7d50 100644 --- a/lib/core/utils/ctx/ctx.go +++ b/lib/core/utils/ctx/ctx.go @@ -128,7 +128,7 @@ func LoginUser(r *http.Request) (vo.LoginUser, error) { if v != nil { return v.(vo.LoginUser), nil } - return vo.LoginUser{}, fmt.Errorf("无用户信息") + return vo.LoginUser{}, fmt.Errorf("No user information") } // LoginUserToUserID 登录用户信息-用户ID diff --git a/lib/dborm/dborm.go b/lib/dborm/dborm.go index b8c69f8b..3bc0ebd3 100644 --- a/lib/dborm/dborm.go +++ b/lib/dborm/dborm.go @@ -820,12 +820,13 @@ func XormCheckLoginUser(name, password, cryptArgo string) (bool, *User, error) { return false, nil, err } if oauth.BcryptCompare(user.Password, password) != nil { - err := errors.New("用户名或密码错误") + err := errors.New("Incorrect user name or password") log.Error(err) // 记录错误 errCoutn := pwdErrCountAdd(user.AccountId, user.Profile, false) if errCoutn > 3 { - return false, nil, errors.New("登录失败次数过多,请30分钟后重试") + // 登录失败次数过多,请30分钟后重试 + return false, nil, errors.New("Login failed too many times, please retry after 30 minutes") } return false, nil, err } @@ -841,9 +842,9 @@ func XormCheckLoginUser(name, password, cryptArgo string) (bool, *User, error) { errMsg := "" switch user.Status { case "Closed": - errMsg = "账户已禁用" + errMsg = "Account disabled" // 账户已禁用 case "Locked": - errMsg = "账户已锁定" + errMsg = "Account locked" // 账户已锁定 case "Pending": // errMsg = "账户已挂起" _, err := xEngine.Exec("UPDATE user SET status = 'Active' WHERE account_id = ?", user.AccountId) @@ -865,7 +866,7 @@ func XormCheckLoginUser(name, password, cryptArgo string) (bool, *User, error) { return false, nil, err } if t.Before(time.Now()) { - errMsg := "密码到期时间" + errMsg := "Password expiration time" // 密码到期时间 // 读取配置信息 result, err := XormGetConfig("Security", "pwdStrong") if err != nil { @@ -893,7 +894,7 @@ func XormCheckLoginUser(name, password, cryptArgo string) (bool, *User, error) { return false, nil, err } if t.Before(time.Now()) { - errMsg := "用户账户到期" + errMsg := "User account expiration" // 用户账户到期 log.Error("UserExpiration:%s", errMsg) return false, nil, errors.New(errMsg) } diff --git a/lib/routes/routes.go b/lib/routes/routes.go index edda7df8..886fb54a 100644 --- a/lib/routes/routes.go +++ b/lib/routes/routes.go @@ -139,9 +139,9 @@ func init() { // parameter config management Register("GET", cm.ParamConfigUri, cm.GetParamConfigFromNF, nil) - Register("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_INSERT))) - Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_UPDATE))) - Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter config management", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter Config", collectlogs.BUSINESS_TYPE_INSERT))) + Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter Config", collectlogs.BUSINESS_TYPE_UPDATE))) + Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("Parameter Config", collectlogs.BUSINESS_TYPE_INSERT))) Register("GET", cm.CustomParamConfigUri, cm.GetParamConfigFromNF, nil) Register("POST", cm.CustomParamConfigUri, cm.PostParamConfigToNF, nil) @@ -150,9 +150,9 @@ func init() { // Get/Create/Modify/Delete NE info Register("GET", cm.UriNeInfo, cm.GetNeInfo, nil) - Register("POST", cm.UriNeInfo, cm.PostNeInfo, midware.LogOperate(collectlogs.OptionNew("NE info", collectlogs.BUSINESS_TYPE_INSERT))) - Register("PUT", cm.UriNeInfo, cm.PutNeInfo, midware.LogOperate(collectlogs.OptionNew("NE info", collectlogs.BUSINESS_TYPE_UPDATE))) - Register("DELETE", cm.UriNeInfo, cm.DeleteNeInfo, midware.LogOperate(collectlogs.OptionNew("NE info", collectlogs.BUSINESS_TYPE_DELETE))) + Register("POST", cm.UriNeInfo, cm.PostNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_INSERT))) + Register("PUT", cm.UriNeInfo, cm.PutNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_UPDATE))) + Register("DELETE", cm.UriNeInfo, cm.DeleteNeInfo, midware.LogOperate(collectlogs.OptionNew("NE Info", collectlogs.BUSINESS_TYPE_DELETE))) // Get/Create/Modify/Delete NE info Register("GET", cm.CustomUriNeInfo, cm.GetNeInfo, nil) @@ -191,12 +191,12 @@ func init() { // Software management Register("GET", cm.UriSoftware, cm.DownloadSoftwareFile, nil) //Register("POST", cm.UriSoftware, cm.UploadSoftwareFile, nil) - Register("POST", cm.UriSoftware, cm.UploadSoftwareMultiFile, midware.LogOperate(collectlogs.OptionNew("Software management", collectlogs.BUSINESS_TYPE_UPDATE))) - Register("DELETE", cm.UriSoftware, cm.DeleteSoftwareFile, midware.LogOperate(collectlogs.OptionNew("Software management", collectlogs.BUSINESS_TYPE_DELETE))) + Register("POST", cm.UriSoftware, cm.UploadSoftwareMultiFile, midware.LogOperate(collectlogs.OptionNew("Software", collectlogs.BUSINESS_TYPE_UPDATE))) + Register("DELETE", cm.UriSoftware, cm.DeleteSoftwareFile, midware.LogOperate(collectlogs.OptionNew("Software", collectlogs.BUSINESS_TYPE_DELETE))) - Register("POST", cm.UriSoftwareNE, cm.DistributeSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software management", collectlogs.BUSINESS_TYPE_OTHER))) - Register("PUT", cm.UriSoftwareNE, cm.ActiveSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software management", collectlogs.BUSINESS_TYPE_OTHER))) - Register("PATCH", cm.UriSoftwareNE, cm.RollBackSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software management", collectlogs.BUSINESS_TYPE_OTHER))) + Register("POST", cm.UriSoftwareNE, cm.DistributeSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software", collectlogs.BUSINESS_TYPE_OTHER))) + Register("PUT", cm.UriSoftwareNE, cm.ActiveSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software", collectlogs.BUSINESS_TYPE_OTHER))) + Register("PATCH", cm.UriSoftwareNE, cm.RollBackSoftwareToNF, midware.LogOperate(collectlogs.OptionNew("Software", collectlogs.BUSINESS_TYPE_OTHER))) Register("GET", cm.CustomUriSoftware, cm.DownloadSoftwareFile, nil) Register("POST", cm.CustomUriSoftware, cm.UploadSoftwareFile, nil) @@ -207,8 +207,8 @@ func init() { Register("PATCH", cm.CustomUriSoftwareNE, cm.RollBackSoftwareToNF, nil) // License management - Register("POST", cm.UriLicense, cm.UploadLicenseFileData, midware.LogOperate(collectlogs.OptionNew("License management", collectlogs.BUSINESS_TYPE_INSERT))) - Register("POST", cm.UriLicenseExt, cm.UploadLicenseFileData, midware.LogOperate(collectlogs.OptionNew("License management", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", cm.UriLicense, cm.UploadLicenseFileData, midware.LogOperate(collectlogs.OptionNew("License", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", cm.UriLicenseExt, cm.UploadLicenseFileData, midware.LogOperate(collectlogs.OptionNew("License", collectlogs.BUSINESS_TYPE_INSERT))) Register("POST", cm.CustomUriLicense, cm.UploadLicenseFileData, nil) Register("POST", cm.CustomUriLicenseExt, cm.UploadLicenseFileData, nil) @@ -224,19 +224,19 @@ func init() { Register("DELETE", trace.CustomUriTraceTask, trace.DeleteTraceTaskToNF, nil) // 网元发送执行 pcap抓包任务 - Register("POST", trace.UriTcpdumpTask, trace.TcpdumpNeTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT))) - Register("POST", trace.CustomUriTcpdumpTask, trace.TcpdumpNeTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", trace.UriTcpdumpTask, trace.TcpdumpNeTask, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", trace.CustomUriTcpdumpTask, trace.TcpdumpNeTask, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_INSERT))) // 网元发送执行 抓包下载pcap文件 - Register("POST", trace.UriTcpdumpPcapDownload, trace.TcpdumpPcapDownload, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_EXPORT))) - Register("POST", trace.CustomUriTcpdumpPcapDownload, trace.TcpdumpPcapDownload, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_EXPORT))) + Register("POST", trace.UriTcpdumpPcapDownload, trace.TcpdumpPcapDownload, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_EXPORT))) + Register("POST", trace.CustomUriTcpdumpPcapDownload, trace.TcpdumpPcapDownload, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_EXPORT))) // 网元发送执行UPF pcap抓包 - Register("POST", trace.UriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT))) - Register("POST", trace.CustomUriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet capturing task", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", trace.UriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_INSERT))) + Register("POST", trace.CustomUriTcpdumpNeUPFTask, trace.TcpdumpNeUPFTask, midware.LogOperate(collectlogs.OptionNew("Packet Capturing Task", collectlogs.BUSINESS_TYPE_INSERT))) // file management - Register("POST", file.UriFile, file.UploadFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_INSERT))) - Register("GET", file.UriFile, file.DownloadFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_OTHER))) - Register("DELETE", file.UriFile, file.DeleteFile, midware.LogOperate(collectlogs.OptionNew("File management", collectlogs.BUSINESS_TYPE_DELETE))) + Register("POST", file.UriFile, file.UploadFile, midware.LogOperate(collectlogs.OptionNew("File", collectlogs.BUSINESS_TYPE_INSERT))) + Register("GET", file.UriFile, file.DownloadFile, midware.LogOperate(collectlogs.OptionNew("File", collectlogs.BUSINESS_TYPE_OTHER))) + Register("DELETE", file.UriFile, file.DeleteFile, midware.LogOperate(collectlogs.OptionNew("File", collectlogs.BUSINESS_TYPE_DELETE))) Register("POST", file.CustomUriFile, file.UploadFile, nil) Register("GET", file.CustomUriFile, file.DownloadFile, nil) diff --git a/lib/services/file.go b/lib/services/file.go index fef202da..14841038 100644 --- a/lib/services/file.go +++ b/lib/services/file.go @@ -3,7 +3,6 @@ package services import ( "bufio" "bytes" - "errors" "fmt" "io" "mime/multipart" @@ -220,7 +219,7 @@ func HandleUploadFormFile(w http.ResponseWriter, r *http.Request) { r.ParseMultipartForm(32 << 20) //mForm := r.MultipartForm - for k, _ := range r.MultipartForm.File { + for k := range r.MultipartForm.File { // k is the key of file part file, fileHeader, err := r.FormFile(k) if err != nil { @@ -253,7 +252,7 @@ func PostFileHandler(w http.ResponseWriter, r *http.Request) { if !strings.Contains(r.Header.Get("Content-Type"), "multipart/form-data") { // 不支持的 Content-Type 类型 fmt.Println("Invalid Content-Type: ", r.Header.Get("Content-Type")) - http.Error(w, " 不支持的 Content-Type 类型", http.StatusBadRequest) + http.Error(w, " Unsupported Content-Type Types", http.StatusBadRequest) return } @@ -284,7 +283,8 @@ func PostFileHandler(w http.ResponseWriter, r *http.Request) { var buf = &bytes.Buffer{} // 非文件字段部分大小限制验证(非文件字段,go中filename会是空) if fileName == "" { - var limitError = "请求主体中非文件字段" + formName + "超出大小限制" + // "请求主体中非文件字段" + formName + "超出大小限制" + var limitError = fmt.Sprintf("Non-file field %s in request body exceeds size limit", formName) err = uploadSizeLimit(buf, part, ValuesMax, limitError) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) @@ -294,7 +294,8 @@ func PostFileHandler(w http.ResponseWriter, r *http.Request) { } // 文件字段部分大小限制验证 - var limitError = "请求主体中文件字段" + fileName + "超出大小限制" + // "请求主体中文件字段" + fileName + "超出大小限制" + var limitError = fmt.Sprintf("File field %s in request body exceeds size limit", fileName) err = uploadSizeLimit(buf, part, FilesMax, limitError) if err != nil { http.Error(w, err.Error(), http.StatusBadRequest) @@ -310,9 +311,11 @@ func PostFileHandler(w http.ResponseWriter, r *http.Request) { // 非逻辑内容,仅为测试使用 var chunkNumber = r.Header.Get("chunk-number") if chunkNumber == "" { - http.Error(w, "文件"+fileName+"上传成功", http.StatusOK) + // "文件"+fileName+"上传成功" + http.Error(w, fmt.Sprintf("File %s uploaded successfully", fileName), http.StatusOK) } else { - http.Error(w, "分片文件"+fileName+chunkNumber+"上传成功", http.StatusOK) + // "分片文件 %s %s 上传成功" + http.Error(w, fmt.Sprintf("Sliced file %s %s uploaded successfully.", fileName, chunkNumber), http.StatusOK) } } } @@ -326,7 +329,7 @@ func uploadSizeLimit(buf *bytes.Buffer, part *multipart.Part, maxLimit int64, li } maxLimit -= n if maxLimit < 0 { - return errors.New(limitError) + return fmt.Errorf(limitError) } return nil } diff --git a/lib/services/services.go b/lib/services/services.go index 44b3c6e3..4024e904 100644 --- a/lib/services/services.go +++ b/lib/services/services.go @@ -138,20 +138,14 @@ func ExtGetUriPageLimitString(r *http.Request) string { } func IsJsonContentType(r *http.Request) bool { - if strings.Contains(r.Header.Get("Content-Type"), "application/json") { - return true - } - return false + hType := r.Header.Get("Content-Type") + return strings.Contains(hType, "application/json") } func IsValidOAuthUri(r *http.Request) bool { vars := mux.Vars(r) apiVer := vars["apiVersion"] // 获取Uri - if apiVer != "v1" { - return false - } - - return true + return apiVer == "v1" } func IsVallidContentType(r *http.Request, checkFlag bool) bool { @@ -386,7 +380,7 @@ func CheckCommonValidRequest(w http.ResponseWriter, r *http.Request) (string, er // error processing ... // 401-1 response token, ret = oauth.IsCarriedToken(r) - if ret == false { + if !ret { log.Error("accessToken is not carried") ResponseUnauthorized401AccessTokenNotCarried(w) return token, err diff --git a/lib/session/session.go b/lib/session/session.go index 1d186752..c2d09679 100644 --- a/lib/session/session.go +++ b/lib/session/session.go @@ -3,7 +3,7 @@ package session import ( "crypto/rand" "encoding/base64" - "errors" + "fmt" "io" "net/http" "strconv" @@ -89,7 +89,7 @@ func (smgr *SessManager) SetSessionValue(token string, key interface{}, value in session.values[key] = value return nil } - return errors.New("invalid session ID") + return fmt.Errorf("invalid session ID") } // GetSessionValue get value fo session @@ -101,7 +101,7 @@ func (smgr *SessManager) GetSessionValue(token string, key interface{}) (interfa return val, nil } } - return nil, errors.New("invalid session ID") + return nil, fmt.Errorf("invalid session ID") } func (smgr *SessManager) GetTokenFromHttpRequest(r *http.Request) string { @@ -111,7 +111,6 @@ func (smgr *SessManager) GetTokenFromHttpRequest(r *http.Request) string { return v[0] } } - return "" }