package parse import ( "SSW_WebPlatform/conf" "fmt" "github.com/kataras/golog" "github.com/kataras/iris/v12" ) var ( // conf strut C iris.Configuration // 解析app.yml中的Other项 O Other // app.conf配置项key定义 ignoreURLs string = "IgnoreURLs" jwtTimeout string = "JWTTimeout" logLevel string = "LogLevel" secret string = "Secret" ) type ( Other struct { IgnoreURLs []string JWTTimeout int64 LogLevel string Secret string } ) func AppOtherParse() { golog.Info("@@@ Init app conf") //c := iris.YAML("conf/app.yml") appData := conf.AppConfig c := iris.DefaultConfiguration() c.DisableBodyConsumptionOnUnmarshal = appData.DisableBodyConsumptionOnUnmarshal c.DisablePathCorrection = appData.DisablePathCorrection c.EnablePathEscape = appData.EnablePathEscape c.FireMethodNotAllowed = appData.FireMethodNotAllowed c.TimeFormat = appData.TimeFormat c.Charset = appData.Charset other := make(map[string]interface{},0) other["IgnoreURLs"] = appData.Other.IgnoreURLs; other["JWTTimeout"] = appData.Other.JWTTimeout; //关闭路由log日志 other["LogLevel"] = appData.Other.LogLevel; other["Secret"] = appData.Other.Secret; c.Other = other C = c // 解析other的key iURLs := c.GetOther()[ignoreURLs].([]string) fmt.Println(iURLs) for _, v := range iURLs { O.IgnoreURLs = append(O.IgnoreURLs, v) } jTimeout := c.GetOther()[jwtTimeout].(int64) O.JWTTimeout = int64(jTimeout) //golog.Info(reflect.TypeOf(O.JWTTimeout)) O.LogLevel = c.GetOther()[logLevel].(string) O.Secret = c.GetOther()[secret].(string) }