package ConfigUtil import ( "dsSso/Utils/CommonUtil" "fmt" "gopkg.in/ini.v1" "io/ioutil" ) var ( //版本1 // mysql数据库服务器配置 MysqlIp string MysqlPort string MysqlUser string MysqlPwd string MysqlDataBase string //要发布到的主机信息 DistributeIp string DistributePort int32 DistributeUser string DistributePwd string DistributeRemotePath string DistributeLocalPath string //REDIS配置 RedisIp string RedisPort string RedisDb string //kafka地址 KafkaAddress string //kafka web日志主题 KafkaAccessLogTopic string //sso的版本 SsoVersion string //========================================================================= //服务器的端口 ServerPort string //验证码的有效时间 CaptchaExpireTime int32 //私有key PrivateKey string //安装地区码 InstallAreaCode string ) //登录的页面 var LoginHtml = "/Sso/static/index.html" //登录的页面 var SuccessHtml = "/Sso/static/ssoSystemList.html" //cookie中的access_token var AccessToken = "access_token" //OAuth2在redis中的前缀 var OAuth2RedisKeyPrefix="oauth2" func init() { //判断是不是单元测试,如果是的话,那么配置文件的路径需要加上一个. var configIniFile = "./Config/Config.ini" //判断文件不是存在 if !CommonUtil.Exists(configIniFile) { configIniFile = "." + configIniFile } iniParser := IniParser{} if err := iniParser.Load(configIniFile); err != nil { fmt.Printf("try load config file[%s] error[%s]\n", configIniFile, err.Error()) return } //主机 MysqlIp = iniParser.GetString("mysql", "ip") //端口 MysqlPort = iniParser.GetString("mysql", "port") //数据库名称 MysqlDataBase = iniParser.GetString("mysql", "database") //用户 MysqlUser = iniParser.GetString("mysql", "user") //密码 MysqlPwd = iniParser.GetString("mysql", "pwd") //发布的远端IP DistributeIp = iniParser.GetString("distribute", "ip") //发布的远端端口 DistributePort = iniParser.GetInt32("distribute", "port") //发布的远端用户名 DistributeUser = iniParser.GetString("distribute", "user") //发布的远端密码 DistributePwd = iniParser.GetString("distribute", "pwd") //远端路径 DistributeRemotePath = iniParser.GetString("distribute", "remotePath") //本地路径 DistributeLocalPath = iniParser.GetString("distribute", "localPath") //服务器端口 ServerPort = iniParser.GetString("server", "port") //读取redis配置 RedisIp = iniParser.GetString("redis", "ip") RedisPort = iniParser.GetString("redis", "port") RedisDb = iniParser.GetString("redis", "db") //kafka地址 KafkaAddress=iniParser.GetString("kafka", "KafkaAddress") //kafka WEB日志主题 KafkaAccessLogTopic =iniParser.GetString("kafka", "KafkaAccessLogTopic") //ssoVersion版本 SsoVersion=iniParser.GetString("sso_version", "version") //验证码有效时长 CaptchaExpireTime = iniParser.GetInt32("server", "CaptchaExpireTime") //私有key b, err := ioutil.ReadFile("./Config/privateKey.txt") if err != nil { fmt.Print(err) } PrivateKey = string(b) //安装地区码 InstallAreaCode=iniParser.GetString("install_area", "code") } type IniParser struct { confReader *ini.File // config reader } type IniParserError struct { errorInfo string } func (e *IniParserError) Error() string { return e.errorInfo } func (this *IniParser) Load(configFileName string) error { conf, err := ini.Load(configFileName) if err != nil { this.confReader = nil return err } this.confReader = conf return nil } func (this *IniParser) GetString(section string, key string) string { if this.confReader == nil { return "" } s := this.confReader.Section(section) if s == nil { return "" } return s.Key(key).String() } func (this *IniParser) GetInt32(section string, key string) int32 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueInt, _ := s.Key(key).Int() return int32(valueInt) } func (this *IniParser) GetUint32(section string, key string) uint32 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueInt, _ := s.Key(key).Uint() return uint32(valueInt) } func (this *IniParser) GetInt64(section string, key string) int64 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueInt, _ := s.Key(key).Int64() return valueInt } func (this *IniParser) GetUint64(section string, key string) uint64 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueInt, _ := s.Key(key).Uint64() return valueInt } func (this *IniParser) GetFloat32(section string, key string) float32 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueFloat, _ := s.Key(key).Float64() return float32(valueFloat) } func (this *IniParser) GetFloat64(section string, key string) float64 { if this.confReader == nil { return 0 } s := this.confReader.Section(section) if s == nil { return 0 } valueFloat, _ := s.Key(key).Float64() return valueFloat }