diff --git a/config/locales/i18n_data.xlsx b/config/locales/i18n_data.xlsx index 46f068a5..d3d06a89 100644 Binary files a/config/locales/i18n_data.xlsx and b/config/locales/i18n_data.xlsx differ diff --git a/config/locales/i18n_table.xlsx b/config/locales/i18n_table.xlsx index 31adac1b..28d43ec8 100644 Binary files a/config/locales/i18n_table.xlsx and b/config/locales/i18n_table.xlsx differ diff --git a/features/ue/ue.go b/features/ue/ue.go index c2e17938..164a605f 100644 --- a/features/ue/ue.go +++ b/features/ue/ue.go @@ -76,15 +76,15 @@ var ( UriUEInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo" UriUENum = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum" UriPCFUser = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo" - UriPCFUserM = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/{number}" + UriPCFUserM = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/batch/{number}" UriPCFUserFileImport = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/file/import" - UriPCFUserFileExport = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/file/import" + UriPCFUserFileExport = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/file/export" CustomUriNBInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo" CustomUriUEInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo" CustomUriUENum = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum" CustomUriPCFUser = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo" - CustomUriPCFUserM = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/{number}" + CustomUriPCFUserM = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/batch/{number}" CustomUriPCFUserFileImport = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/file/import" CustomUriPCFUserFileExport = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo/file/export" ) @@ -505,3 +505,69 @@ func GetNBInfoFromNF(w http.ResponseWriter, r *http.Request) { return } } + +// Get GetUEInfoFileExportNF from NF/NFs +func GetUEInfoFileExportNF(w http.ResponseWriter, r *http.Request) { + log.Info("GetUEInfoFromNF processing... ") + + // vars := mux.Vars(r) + // neType := vars["elementTypeValue"] + // if neType == "" { + // services.ResponseNotFound404UriNotExist(w, r) + // return + // } + //neTypeLower := strings.ToLower(neType) + var neId string + neIds := services.GetParamsArrByName("neId", r) + if len(neIds) == 1 { + neId = neIds[0] + } else { + services.ResponseNotFound404UriNotExist(w, r) + return + } + + // token, err := services.CheckFrontValidRequest(w, r) + // if err != nil { + // log.Error("Request error:", err) + // return + // } + // log.Debug("token:", token) + + neInfo, err := dborm.XormGetNeInfo("PCF", neId) + if err != nil { + log.Error("Failed to XormGetNeInfo:", err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } else if neInfo == nil { + err := global.ErrCMNotFoundTargetNE + log.Error(global.ErrCMNotFoundTargetNE) + services.ResponseInternalServerError500ProcessError(w, err) + return + } + log.Trace("neInfo:", neInfo) + + hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port) + requestURI2NF := fmt.Sprintf("%s%s", hostUri, r.RequestURI) + + log.Debug("requestURI2NF:", requestURI2NF) + + resp, err := client.R(). + EnableTrace(). + SetHeaders(map[string]string{tokenConst.HEADER_KEY: r.Header.Get(tokenConst.HEADER_KEY)}). + // SetHeaders(map[string]string{"accessToken": token}). + SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}). + SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}). + Get(requestURI2NF) + if err != nil { + log.Error("Get system state from NF is failed:", err) + services.ResponseInternalServerError500ProcessError(w, err) + return + } else { + w.WriteHeader(resp.StatusCode()) + w.Write(resp.Body()) + // var response services.MapResponse + // _ = json.Unmarshal(resp.Body(), &response) + // services.ResponseWithJson(w, resp.StatusCode(), response) + return + } +} diff --git a/lib/core/datasource/repo.go b/lib/core/datasource/repo.go index 71bc422b..7b81a4e1 100644 --- a/lib/core/datasource/repo.go +++ b/lib/core/datasource/repo.go @@ -13,9 +13,6 @@ func PageNumSize(pageNum, pageSize any) (int, int) { pageNumStr := fmt.Sprintf("%v", pageNum) num := 1 if v, err := strconv.Atoi(pageNumStr); err == nil && v > 0 { - if num > 5000 { - num = 5000 - } num = v } @@ -23,13 +20,7 @@ func PageNumSize(pageNum, pageSize any) (int, int) { pageSizeStr := fmt.Sprintf("%v", pageSize) size := 10 if v, err := strconv.Atoi(pageSizeStr); err == nil && v > 0 { - if size < 0 { - size = 10 - } else if size > 1000 { - size = 1000 - } else { - size = v - } + size = v } return num - 1, size } diff --git a/lib/routes/routes.go b/lib/routes/routes.go index 50f66f0f..7b4b56f8 100644 --- a/lib/routes/routes.go +++ b/lib/routes/routes.go @@ -274,10 +274,10 @@ func init() { Register("DELETE", ue.UriPCFUserM, ue.DeletePCFUserInfo, nil) Register("DELETE", ue.CustomUriPCFUserM, ue.DeletePCFUserInfo, nil) //PCF User file - Register("GET", ue.UriPCFUserFileExport, ue.GetUEInfoFromNF, nil) + Register("GET", ue.UriPCFUserFileExport, ue.GetUEInfoFileExportNF, nil) Register("GET", ue.CustomUriPCFUserFileExport, ue.GetUEInfoFromNF, nil) - Register("POST", ue.UriPCFUserFileImport, ue.PostPCFUserInfo, nil) - Register("POST", ue.CustomUriPCFUserFileImport, ue.PostPCFUserInfo, nil) + Register("PUT", ue.UriPCFUserFileImport, ue.PutPCFUserInfo, nil) + Register("PUT", ue.CustomUriPCFUserFileImport, ue.PutPCFUserInfo, nil) // UE Number Register("GET", ue.UriUENum, ue.GetUENumFromNF, nil) diff --git a/src/framework/middleware/pre_authorize.go b/src/framework/middleware/pre_authorize.go index 4ded217f..81f42897 100644 --- a/src/framework/middleware/pre_authorize.go +++ b/src/framework/middleware/pre_authorize.go @@ -1,6 +1,8 @@ package middleware import ( + "strings" + AdminConstants "ems.agt/src/framework/constants/admin" commonConstants "ems.agt/src/framework/constants/common" "ems.agt/src/framework/i18n" @@ -11,6 +13,9 @@ import ( "github.com/gin-gonic/gin" ) +/**无Token可访问白名单 */ +var URL_WHITE_LIST = []string{"/performanceManagement", "/faultManagement"} + // PreAuthorize 用户身份授权认证校验 // // 只需含有其中角色 "hasRoles": {"xxx"}, @@ -24,6 +29,21 @@ func PreAuthorize(options map[string][]string) gin.HandlerFunc { return func(c *gin.Context) { language := ctxUtils.AcceptLanguage(c) + requestURI := c.Request.RequestURI + + // 判断白名单 + isWhite := false + for _, w := range URL_WHITE_LIST { + if strings.Contains(requestURI, w) { + isWhite = true + break + } + } + if isWhite { + c.Next() + return + } + // 获取请求头标识信息 tokenStr := ctxUtils.Authorization(c) if tokenStr == "" { @@ -61,7 +81,7 @@ func PreAuthorize(options map[string][]string) gin.HandlerFunc { perms := loginUser.Permissions verifyOk := verifyRolePermission(roles, perms, options) if !verifyOk { - msg := i18n.TTemplate(language, "app.common.err403", map[string]any{"method": c.Request.Method, "requestURI": c.Request.RequestURI}) + msg := i18n.TTemplate(language, "app.common.err403", map[string]any{"method": c.Request.Method, "requestURI": requestURI}) c.JSON(403, result.CodeMsg(403, msg)) c.Abort() // 停止执行后续的处理函数 return diff --git a/src/framework/utils/repo/repo.go b/src/framework/utils/repo/repo.go index 47bdf86b..02da857f 100644 --- a/src/framework/utils/repo/repo.go +++ b/src/framework/utils/repo/repo.go @@ -13,18 +13,12 @@ import ( func PageNumSize(pageNum, pageSize any) (int64, int64) { // 记录起始索引 num := parse.Number(pageNum) - if num > 5000 { - num = 5000 - } if num < 1 { num = 1 } // 显示记录数 size := parse.Number(pageSize) - if size > 50000 { - size = 50000 - } if size < 0 { size = 10 }