1
0

marge: 合并代码

This commit is contained in:
TsMask
2023-12-01 20:08:12 +08:00
parent 3c56f1ae36
commit 6fe7464779
5 changed files with 107 additions and 27 deletions

View File

@@ -72,17 +72,21 @@ type N3iwfUEData struct {
} }
var ( var (
UriNBInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo" UriNBInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo"
UriUEInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo" UriUEInfo = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo"
UriUENum = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum" UriUENum = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum"
UriPCFUser = config.DefaultUriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo" 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/export"
CustomUriNBInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo" CustomUriNBInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/nbInfo"
CustomUriUEInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo" CustomUriUEInfo = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueInfo"
CustomUriUENum = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum" CustomUriUENum = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/ueNum"
CustomUriPCFUser = config.UriPrefix + "/ueManagement/{apiVersion}/elementType/pcf/objectType/ueInfo" 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"
) )
var client = resty.New() var client = resty.New()
@@ -501,3 +505,69 @@ func GetNBInfoFromNF(w http.ResponseWriter, r *http.Request) {
return 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
}
}

View File

@@ -13,9 +13,6 @@ func PageNumSize(pageNum, pageSize any) (int, int) {
pageNumStr := fmt.Sprintf("%v", pageNum) pageNumStr := fmt.Sprintf("%v", pageNum)
num := 1 num := 1
if v, err := strconv.Atoi(pageNumStr); err == nil && v > 0 { if v, err := strconv.Atoi(pageNumStr); err == nil && v > 0 {
if num > 5000 {
num = 5000
}
num = v num = v
} }
@@ -23,13 +20,7 @@ func PageNumSize(pageNum, pageSize any) (int, int) {
pageSizeStr := fmt.Sprintf("%v", pageSize) pageSizeStr := fmt.Sprintf("%v", pageSize)
size := 10 size := 10
if v, err := strconv.Atoi(pageSizeStr); err == nil && v > 0 { if v, err := strconv.Atoi(pageSizeStr); err == nil && v > 0 {
if size < 0 { size = v
size = 10
} else if size > 1000 {
size = 1000
} else {
size = v
}
} }
return num - 1, size return num - 1, size
} }

View File

@@ -273,6 +273,11 @@ func init() {
Register("PUT", ue.CustomUriPCFUserM, ue.PutPCFUserInfo, nil) Register("PUT", ue.CustomUriPCFUserM, ue.PutPCFUserInfo, nil)
Register("DELETE", ue.UriPCFUserM, ue.DeletePCFUserInfo, nil) Register("DELETE", ue.UriPCFUserM, ue.DeletePCFUserInfo, nil)
Register("DELETE", ue.CustomUriPCFUserM, ue.DeletePCFUserInfo, nil) Register("DELETE", ue.CustomUriPCFUserM, ue.DeletePCFUserInfo, nil)
//PCF User file
Register("GET", ue.UriPCFUserFileExport, ue.GetUEInfoFileExportNF, nil)
Register("GET", ue.CustomUriPCFUserFileExport, ue.GetUEInfoFromNF, nil)
Register("PUT", ue.UriPCFUserFileImport, ue.PutPCFUserInfo, nil)
Register("PUT", ue.CustomUriPCFUserFileImport, ue.PutPCFUserInfo, nil)
// UE Number // UE Number
Register("GET", ue.UriUENum, ue.GetUENumFromNF, nil) Register("GET", ue.UriUENum, ue.GetUENumFromNF, nil)

View File

@@ -1,6 +1,8 @@
package middleware package middleware
import ( import (
"strings"
AdminConstants "ems.agt/src/framework/constants/admin" AdminConstants "ems.agt/src/framework/constants/admin"
commonConstants "ems.agt/src/framework/constants/common" commonConstants "ems.agt/src/framework/constants/common"
"ems.agt/src/framework/i18n" "ems.agt/src/framework/i18n"
@@ -11,6 +13,9 @@ import (
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
) )
/**无Token可访问白名单 */
var URL_WHITE_LIST = []string{"/performanceManagement", "/faultManagement"}
// PreAuthorize 用户身份授权认证校验 // PreAuthorize 用户身份授权认证校验
// //
// 只需含有其中角色 "hasRoles": {"xxx"}, // 只需含有其中角色 "hasRoles": {"xxx"},
@@ -24,6 +29,21 @@ func PreAuthorize(options map[string][]string) gin.HandlerFunc {
return func(c *gin.Context) { return func(c *gin.Context) {
language := ctxUtils.AcceptLanguage(c) 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) tokenStr := ctxUtils.Authorization(c)
if tokenStr == "" { if tokenStr == "" {
@@ -61,7 +81,7 @@ func PreAuthorize(options map[string][]string) gin.HandlerFunc {
perms := loginUser.Permissions perms := loginUser.Permissions
verifyOk := verifyRolePermission(roles, perms, options) verifyOk := verifyRolePermission(roles, perms, options)
if !verifyOk { 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.JSON(403, result.CodeMsg(403, msg))
c.Abort() // 停止执行后续的处理函数 c.Abort() // 停止执行后续的处理函数
return return

View File

@@ -13,18 +13,12 @@ import (
func PageNumSize(pageNum, pageSize any) (int64, int64) { func PageNumSize(pageNum, pageSize any) (int64, int64) {
// 记录起始索引 // 记录起始索引
num := parse.Number(pageNum) num := parse.Number(pageNum)
if num > 5000 {
num = 5000
}
if num < 1 { if num < 1 {
num = 1 num = 1
} }
// 显示记录数 // 显示记录数
size := parse.Number(pageSize) size := parse.Number(pageSize)
if size > 50000 {
size = 50000
}
if size < 0 { if size < 0 {
size = 10 size = 10
} }