merge: 合并代码
This commit is contained in:
@@ -10,9 +10,9 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
"be.ems/lib/core/vo"
|
||||
commonConstants "be.ems/src/framework/constants/common"
|
||||
tokenConst "be.ems/src/framework/constants/token"
|
||||
"be.ems/src/framework/constants/token"
|
||||
tokenUtils "be.ems/src/framework/utils/token"
|
||||
"be.ems/src/framework/vo"
|
||||
"github.com/gorilla/mux"
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
@@ -122,12 +122,26 @@ func SaveUploadedFile(r *http.Request, dst string) error {
|
||||
|
||||
// Authorization 解析请求头
|
||||
func Authorization(r *http.Request) string {
|
||||
authHeader := r.Header.Get(tokenConst.HEADER_KEY)
|
||||
// Query请求查询
|
||||
if authQuery := r.URL.Query().Get(token.ACCESS_TOKEN); authQuery != "" {
|
||||
return authQuery
|
||||
}
|
||||
// Header请求头
|
||||
if authHeader := r.Header.Get(token.ACCESS_TOKEN); authHeader != "" {
|
||||
return authHeader
|
||||
}
|
||||
|
||||
// Query请求查询
|
||||
if authQuery := r.URL.Query().Get(token.RESPONSE_FIELD); authQuery != "" {
|
||||
return authQuery
|
||||
}
|
||||
// Header请求头
|
||||
authHeader := r.Header.Get(token.HEADER_KEY)
|
||||
if authHeader == "" {
|
||||
return ""
|
||||
}
|
||||
// 拆分 Authorization 请求头,提取 JWT 令牌部分
|
||||
arr := strings.Split(authHeader, tokenConst.HEADER_PREFIX)
|
||||
arr := strings.Split(authHeader, token.HEADER_PREFIX)
|
||||
if len(arr) == 2 && arr[1] == "" {
|
||||
return ""
|
||||
}
|
||||
@@ -164,12 +178,24 @@ type ContextKey string
|
||||
|
||||
// LoginUser 登录用户信息需要Authorize中间件
|
||||
func LoginUser(r *http.Request) (vo.LoginUser, error) {
|
||||
// 上下文
|
||||
v := r.Context().Value(ContextKey(commonConstants.CTX_LOGIN_USER))
|
||||
if v != nil {
|
||||
return v.(vo.LoginUser), nil
|
||||
// 获取请求头标识信息
|
||||
tokenStr := Authorization(r)
|
||||
if tokenStr == "" {
|
||||
return vo.LoginUser{}, fmt.Errorf("not token info")
|
||||
}
|
||||
return vo.LoginUser{}, fmt.Errorf("No user information")
|
||||
// 验证令牌
|
||||
claims, err := tokenUtils.Verify(tokenStr)
|
||||
if err != nil {
|
||||
return vo.LoginUser{}, fmt.Errorf("token verify fail")
|
||||
}
|
||||
|
||||
// 获取缓存的用户信息
|
||||
loginUser := tokenUtils.LoginUser(claims)
|
||||
if loginUser.UserID == "" {
|
||||
return vo.LoginUser{}, fmt.Errorf("not user info")
|
||||
}
|
||||
|
||||
return loginUser, nil
|
||||
}
|
||||
|
||||
// LoginUserToUserID 登录用户信息-用户ID
|
||||
@@ -187,5 +213,5 @@ func LoginUserToUserName(r *http.Request) string {
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
return loginUser.UserName
|
||||
return loginUser.User.UserName
|
||||
}
|
||||
|
||||
@@ -45,9 +45,9 @@ type DatabaseClient struct {
|
||||
|
||||
var DbClient DatabaseClient
|
||||
|
||||
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) error {
|
||||
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local",
|
||||
dbUser, dbPassword, dbHost, dbPort, dbName)
|
||||
func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName, dbParam string) error {
|
||||
DbClient.dbUrl = fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?%s",
|
||||
dbUser, dbPassword, dbHost, dbPort, dbName, dbParam)
|
||||
DbClient.dbType = dbType
|
||||
DbClient.dbConnMaxLifetime = 0
|
||||
DbClient.dbMaxIdleConns = 0
|
||||
@@ -55,8 +55,7 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
|
||||
if log.GetLevel() == log.LOG_TRACE {
|
||||
DbClient.IsShowSQL = true
|
||||
}
|
||||
log.Debugf("dbType:%s dbUrl:%s:******@tcp(%s:%s)/%s??charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=true&loc=Local",
|
||||
dbType, dbUser, dbHost, dbPort, dbName)
|
||||
log.Debugf("dbType:%s dbUrl:%s:", dbType, DbClient.dbUrl)
|
||||
|
||||
var err error
|
||||
DbClient.XEngine, err = xorm.NewEngine(DbClient.dbType, DbClient.dbUrl)
|
||||
@@ -67,9 +66,12 @@ func InitDbClient(dbType, dbUser, dbPassword, dbHost, dbPort, dbName string) err
|
||||
DbClient.XEngine.SetConnMaxLifetime(DbClient.dbConnMaxLifetime)
|
||||
DbClient.XEngine.SetMaxIdleConns(DbClient.dbMaxIdleConns)
|
||||
DbClient.XEngine.SetMaxOpenConns(DbClient.dbMaxOpenConns)
|
||||
DbClient.XEngine.DatabaseTZ = time.Local // 必须
|
||||
DbClient.XEngine.TZLocation = time.Local // 必须
|
||||
if DbClient.IsShowSQL {
|
||||
DbClient.XEngine.ShowSQL(true)
|
||||
}
|
||||
|
||||
xEngine = DbClient.XEngine
|
||||
|
||||
return nil
|
||||
@@ -180,20 +182,20 @@ func InsertDataWithJson(insertData interface{}) (int64, error) {
|
||||
}
|
||||
|
||||
type NeInfo struct {
|
||||
Id int `json:"id" xorm:"pk 'id' autoincr"`
|
||||
NeType string `json:"neType" xorm:"ne_type"`
|
||||
NeId string `json:"neId" xorm:"ne_id"` // neUID/rmUID 网元唯一标识
|
||||
RmUID string `json:"rmUid" xorm:"rm_uid"` // neUID/rmUID网元UID
|
||||
NeName string `json:"neName" xorm:"ne_name"` // NeName/UserLabel 网元名称/网元设备友好名称
|
||||
Ip string `json:"ip" xorm:"ip"`
|
||||
Port string `json:"port" xorm:"port"`
|
||||
PvFlag string `json:"pvFlag" xorm:"pv_flag"` // 网元虚实性标识 VNF/PNF: 虚拟/物理
|
||||
NeAddress string `json:"neAddress" xorm:"ne_address"` // 只对PNF
|
||||
Province string `json:"province" xorm:"province"` // 网元所在省份
|
||||
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
|
||||
Dn string `json:"dn" xorm:"dn"` // 网络标识
|
||||
Status int `json:"status" xorm:"status"`
|
||||
UpdateTime string `json:"-" xorm:"-"`
|
||||
Id int `json:"id" xorm:"pk 'id' autoincr"`
|
||||
NeType string `json:"neType" xorm:"ne_type"`
|
||||
NeId string `json:"neId" xorm:"ne_id"` // neUID/rmUID 网元唯一标识
|
||||
RmUID string `json:"rmUid" xorm:"rm_uid"` // neUID/rmUID网元UID
|
||||
NeName string `json:"neName" xorm:"ne_name"` // NeName/UserLabel 网元名称/网元设备友好名称
|
||||
Ip string `json:"ip" xorm:"ip"`
|
||||
Port string `json:"port" xorm:"port"`
|
||||
PvFlag string `json:"pvFlag" xorm:"pv_flag"` // 网元虚实性标识 VNF/PNF: 虚拟/物理
|
||||
NeAddress string `json:"neAddress" xorm:"ne_address"` // 只对PNF
|
||||
Province string `json:"province" xorm:"province"` // 网元所在省份
|
||||
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
|
||||
Dn string `json:"dn" xorm:"dn"` // 网络标识
|
||||
Status int `json:"status" xorm:"status"`
|
||||
UpdateTime time.Time `json:"updateTime" xorm:"<-"`
|
||||
}
|
||||
|
||||
func XormGetMySQLVersion() (string, error) {
|
||||
@@ -1424,7 +1426,7 @@ type NeVersion struct {
|
||||
}
|
||||
|
||||
func XormGetDataBySQL(sql string) (*[]map[string]string, error) {
|
||||
log.Debug("XormGetDataBySQL processing... ")
|
||||
//log.Debug("XormGetDataBySQL processing... ")
|
||||
|
||||
rows := make([]map[string]string, 0)
|
||||
rows, err := DbClient.XEngine.QueryString(sql)
|
||||
@@ -1451,6 +1453,15 @@ func XormDeleteDataByWhere(where, table string) (int64, error) {
|
||||
return affected, nil
|
||||
}
|
||||
|
||||
func XormDeleteDataByWhereNoSession(where, table string) (int64, error) {
|
||||
affected, err := DbClient.XEngine.Table(table).Where(where).Delete()
|
||||
if err != nil {
|
||||
log.Error("Failed to Delete:", err)
|
||||
return 0, err
|
||||
}
|
||||
return affected, nil
|
||||
}
|
||||
|
||||
func XormDeleteDataById(id int, table string) (int64, error) {
|
||||
log.Debug("XormDeleteDataByWhere processing... ")
|
||||
|
||||
@@ -1632,9 +1643,10 @@ type AlarmForwardLog struct {
|
||||
AlarmTitle string `json:"alarmTitle" xorm:"alarm_title"`
|
||||
AlarmSeq int `json:"alarmSeq" xorm:"alarm_seq"`
|
||||
EventTime string `json:"eventTime" xorm:"event_time"`
|
||||
Interface string `json:"interface" xorm:"interface"`
|
||||
ToUser string `json:"toUser" xorm:"to_user"`
|
||||
OperResult string `json:"operResult" xorm:"oper_result"`
|
||||
LogTime string `json:"-" xorm:"-"`
|
||||
LogTime string `json:"logTime" xorm:"<-"`
|
||||
}
|
||||
|
||||
func XormInsertAlarmForwardLog(logData *AlarmForwardLog) (int64, error) {
|
||||
@@ -1669,7 +1681,7 @@ func XormInsertSystemLog(logData *SystemLog) (int64, error) {
|
||||
return affected, err
|
||||
}
|
||||
|
||||
type permission struct {
|
||||
type Permission struct {
|
||||
ID int `json:"-" xorm:"pk 'id' autoincr"`
|
||||
PermissionName string `json:"permissionName"`
|
||||
Method string `json:"method"`
|
||||
|
||||
@@ -12,7 +12,6 @@ import (
|
||||
"be.ems/lib/core/datasource"
|
||||
"be.ems/lib/core/utils/ctx"
|
||||
"be.ems/lib/core/utils/date"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/log"
|
||||
)
|
||||
|
||||
@@ -50,19 +49,12 @@ func LogMML(next http.Handler) http.Handler {
|
||||
resultStr := fmt.Sprintf(`{"status":"%s","size":"%s","content-type":"%s"}`, status, size, contentType)
|
||||
|
||||
// 用户名
|
||||
username := "-"
|
||||
accessToken := r.Header.Get("AccessToken")
|
||||
if accessToken != "" {
|
||||
// 验证令牌 == 这里直接查数据库session
|
||||
se, _ := dborm.XormUpdateSessionShakeTime(accessToken)
|
||||
username = se.AccountId
|
||||
}
|
||||
|
||||
username := ctx.LoginUserToUserName(r)
|
||||
// 执行插入
|
||||
sql := "insert into mml_log (user,ip,ne_type,ne_id,mml,result,log_time)values(?,?,?,?,?,?,?)"
|
||||
_, sqlerr := datasource.ExecDB("", sql, []any{username, ipAddr, neType, neId, mmlCmd, resultStr, timeStr})
|
||||
if sqlerr != nil {
|
||||
log.Errorf("insert row : %v", err.Error())
|
||||
log.Errorf("insert row : %v", sqlerr.Error())
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -507,7 +507,7 @@ func TransMml2HttpReq(omcMmlVar *MmlVar, mml *MmlCommand) (*[]byte, error) {
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{tokenConst.HEADER_KEY: omcMmlVar.Authorization}).
|
||||
SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
// SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
SetHeaders(map[string]string{"User-Agent": omcMmlVar.UserAgent}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
Get(requestURI)
|
||||
@@ -524,7 +524,7 @@ func TransMml2HttpReq(omcMmlVar *MmlVar, mml *MmlCommand) (*[]byte, error) {
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{tokenConst.HEADER_KEY: omcMmlVar.Authorization}).
|
||||
SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
// SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
SetHeaders(map[string]string{"User-Agent": omcMmlVar.UserAgent}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
SetBody(*body).
|
||||
@@ -558,7 +558,7 @@ func TransMml2HttpReq(omcMmlVar *MmlVar, mml *MmlCommand) (*[]byte, error) {
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{tokenConst.HEADER_KEY: omcMmlVar.Authorization}).
|
||||
SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
// SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
SetHeaders(map[string]string{"User-Agent": omcMmlVar.UserAgent}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
SetBody(*body).
|
||||
@@ -575,7 +575,7 @@ func TransMml2HttpReq(omcMmlVar *MmlVar, mml *MmlCommand) (*[]byte, error) {
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{tokenConst.HEADER_KEY: omcMmlVar.Authorization}).
|
||||
SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
// SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
SetHeaders(map[string]string{"User-Agent": omcMmlVar.UserAgent}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
Delete(requestURI)
|
||||
@@ -591,7 +591,7 @@ func TransMml2HttpReq(omcMmlVar *MmlVar, mml *MmlCommand) (*[]byte, error) {
|
||||
response, err := client.R().
|
||||
EnableTrace().
|
||||
SetHeaders(map[string]string{tokenConst.HEADER_KEY: omcMmlVar.Authorization}).
|
||||
SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
// SetHeaders(map[string]string{"accessToken": omcMmlVar.SessionToken}).
|
||||
SetHeaders(map[string]string{"User-Agent": omcMmlVar.UserAgent}).
|
||||
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
|
||||
Patch(requestURI)
|
||||
|
||||
@@ -145,9 +145,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", 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("POST", cm.ParamConfigUri, cm.PostParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||
Register("PUT", cm.ParamConfigUri, cm.PutParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_UPDATE)))
|
||||
Register("DELETE", cm.ParamConfigUri, cm.DeleteParamConfigToNF, midware.LogOperate(collectlogs.OptionNew("log.operate.title.neConfig", collectlogs.BUSINESS_TYPE_INSERT)))
|
||||
|
||||
Register("GET", cm.CustomParamConfigUri, cm.GetParamConfigFromNF, nil)
|
||||
Register("POST", cm.CustomParamConfigUri, cm.PostParamConfigToNF, nil)
|
||||
@@ -174,11 +174,11 @@ func init() {
|
||||
Register("POST", mml.UriMML, mml.PostMMLToNF, midware.LogMML)
|
||||
Register("POST", mml.UriMMLDiscard, mml.PostMMLToNF, nil)
|
||||
Register("POST", mml.UriOmMmlExt, mml.PostMMLToOMC, midware.LogMML)
|
||||
Register("POST", mml.CustomUriMML, mml.PostMMLToNF, midware.LogMML)
|
||||
Register("POST", mml.CustomUriOmMmlExt, mml.PostMMLToOMC, midware.LogMML)
|
||||
Register("POST", mml.CustomUriMML, mml.PostMMLToNF, nil)
|
||||
Register("POST", mml.CustomUriOmMmlExt, mml.PostMMLToOMC, nil)
|
||||
// post mml2 (standard upf port=5002)
|
||||
Register("POST", mml.UriMML2, mml.PostMML2ToNF, midware.LogMML)
|
||||
Register("POST", mml.CustomUriMML2, mml.PostMML2ToNF, midware.LogMML)
|
||||
Register("POST", mml.CustomUriMML2, mml.PostMML2ToNF, nil)
|
||||
|
||||
// Northbound Get NRM
|
||||
Register("GET", nbi.GetNRMUri, nbi.NBIGetNRMFromNF, nil)
|
||||
|
||||
@@ -449,66 +449,66 @@ func CheckFrontValidRequest(w http.ResponseWriter, r *http.Request) (string, err
|
||||
log.Debug("CheckFrontValidRequest processing... ")
|
||||
|
||||
var token string = ""
|
||||
var err error
|
||||
var ret bool
|
||||
// response 414-4 uri too long ? (optional)
|
||||
// todo ... ?
|
||||
if bytes.Count([]byte(r.RequestURI), nil) > config.GetUriMaxLenFromConfig() {
|
||||
err = errors.New("request Uri too long")
|
||||
log.Errorf("Request Uri too long: bytes=%d, MaxLen=%d", bytes.Count([]byte(r.RequestURI), nil), config.GetUriMaxLenFromConfig())
|
||||
ResponseRequestURITooLong414UriTooLong(w)
|
||||
return token, err
|
||||
}
|
||||
// var err error
|
||||
// var ret bool
|
||||
// // response 414-4 uri too long ? (optional)
|
||||
// // todo ... ?
|
||||
// if bytes.Count([]byte(r.RequestURI), nil) > config.GetUriMaxLenFromConfig() {
|
||||
// err = errors.New("request Uri too long")
|
||||
// log.Errorf("Request Uri too long: bytes=%d, MaxLen=%d", bytes.Count([]byte(r.RequestURI), nil), config.GetUriMaxLenFromConfig())
|
||||
// ResponseRequestURITooLong414UriTooLong(w)
|
||||
// return token, err
|
||||
// }
|
||||
|
||||
/*
|
||||
// check media type(content type) only support "application/json"
|
||||
// response 415-1
|
||||
if !IsVallidContentType(r) {
|
||||
err := errors.New("Invalid Content-Type")
|
||||
log.Error(err)
|
||||
ResponseUnsupportedMediaType415(w)
|
||||
return err
|
||||
}
|
||||
*/
|
||||
// /*
|
||||
// // check media type(content type) only support "application/json"
|
||||
// // response 415-1
|
||||
// if !IsVallidContentType(r) {
|
||||
// err := errors.New("Invalid Content-Type")
|
||||
// log.Error(err)
|
||||
// ResponseUnsupportedMediaType415(w)
|
||||
// return err
|
||||
// }
|
||||
// */
|
||||
|
||||
// error processing ...
|
||||
// 401-1 response
|
||||
if config.GetYamlConfig().Auth.Token && !IsLocalhost(r.RemoteAddr) {
|
||||
token, ret = oauth.IsCarriedToken(r)
|
||||
if !ret {
|
||||
err = errors.New("accessToken is not carried")
|
||||
log.Error(err)
|
||||
ResponseUnauthorized401AccessTokenNotCarried(w)
|
||||
return token, err
|
||||
}
|
||||
// // error processing ...
|
||||
// // 401-1 response
|
||||
// if config.GetYamlConfig().Auth.Token && !IsLocalhost(r.RemoteAddr) {
|
||||
// token, ret = oauth.IsCarriedToken(r)
|
||||
// if !ret {
|
||||
// err = errors.New("accessToken is not carried")
|
||||
// log.Error(err)
|
||||
// ResponseUnauthorized401AccessTokenNotCarried(w)
|
||||
// return token, err
|
||||
// }
|
||||
|
||||
// 401-2 response
|
||||
if !dborm.XormExistValidToken(token, config.GetExpiresFromConfig()) {
|
||||
err = errors.New("accessToken fails or does not exist")
|
||||
log.Error(err)
|
||||
ResponseUnauthorized401AccessTokenNotExist(w)
|
||||
return token, err
|
||||
}
|
||||
// // 401-2 response
|
||||
// if !dborm.XormExistValidToken(token, config.GetExpiresFromConfig()) {
|
||||
// err = errors.New("accessToken fails or does not exist")
|
||||
// log.Error(err)
|
||||
// ResponseUnauthorized401AccessTokenNotExist(w)
|
||||
// return token, err
|
||||
// }
|
||||
|
||||
if operType := GetOperationTypeFromHttpRequest(r); operType != "auto" {
|
||||
_, err = dborm.XormUpdateSessionShakeTime(token)
|
||||
if err != nil {
|
||||
log.Error("Failed to update session table:", err)
|
||||
ResponseUnauthorized401AccessTokenNotExist(w)
|
||||
return token, err
|
||||
}
|
||||
}
|
||||
// if operType := GetOperationTypeFromHttpRequest(r); operType != "auto" {
|
||||
// _, err = dborm.XormUpdateSessionShakeTime(token)
|
||||
// if err != nil {
|
||||
// log.Error("Failed to update session table:", err)
|
||||
// ResponseUnauthorized401AccessTokenNotExist(w)
|
||||
// return token, err
|
||||
// }
|
||||
// }
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
vars := mux.Vars(r)
|
||||
apiVer := vars["apiVersion"]
|
||||
if apiVer != global.ApiVersionV1 {
|
||||
err = errors.New("uri is invalid")
|
||||
log.Error(err)
|
||||
ResponseNotFound404UriNotExist(w, r)
|
||||
return token, err
|
||||
}
|
||||
// vars := mux.Vars(r)
|
||||
// apiVer := vars["apiVersion"]
|
||||
// if apiVer != global.ApiVersionV1 {
|
||||
// err = errors.New("uri is invalid")
|
||||
// log.Error(err)
|
||||
// ResponseNotFound404UriNotExist(w, r)
|
||||
// return token, err
|
||||
// }
|
||||
|
||||
return token, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user