func (s *DefaultConf) GetJwtIssuer() string {
	return s.Security.Jwt.Issuer
}
GetJwtIssuer get GetJwtIssuer
package conf
import (
	"log"
	"github.com/BurntSushi/toml"
)
type Conf interface {
	GetDebug() bool
	GetTLSEnable() bool
	GetProjectName() string
	GetProjectTags() []string
	GetAppType() string
	GetAppAddress() string
	GetAppPort() int
	GetServiceDiscoveryAddress() string
	GetServiceDiscoveryPort() int
	GetServiceDiscoveryTimeout() int
	GetDeregisterAfterCritical() int
	GetHealthCheckInterval() int
	GetCAPemFile() string
	GetServerPemFile() string
	GetServerKeyFile() string
	GetClientPemFile() string
	GetClientKeyFile() string
	GetProjectVersion() string
	GetLogRootPath() string
	GetLogName() string
	GetServiceDiscoveryType() string
	GetServiceDiscoveryAutoRegister() bool
	GetAtomicRequest() bool
	GetTablePrefix() string
	GetAppMediaURL() string
	GetAppStaticURL() string
	GetAppMediaPath() string
	GetAppStaticPath() string
	GetCacheSize() int
	GetCacheTimeout() int
	GetPageSize() int
	GetAppBaseURL() string
	GetMigrationPath() string
	GetJwtSecretKey() string
	GetJwtVerifyExpireHour() bool
	GetJwtVerifyIssuer() bool
	GetJwtIssuer() string
	GetJwtHeaderPrefix() string
	GetJwtExpireHour() int
	GetAppReadTimeout() int
	GetAppReadHeaderTimeout() int
	GetAppWriteTimeout() int
	GetAppIdleTimeout() int
	GetAppMaxHeaderBytes() int
	GetAllowOrigins() []string
	GetAllowMethods() []string
	GetAllowHeaders() []string
	GetExposeHeaders() []string
	GetAllowCredentials() bool
	GetMaxAgeHour() int
	GetCorsEnable() bool
	GetDBType() string
	GetDBServer() string
	GetDBTablePrefix() string
	GetDbMaxIdleConn() int
	GetDbMaxOpenConn() int
	GetRedisCacheHost() string
	GetRedisCachePort() int
	GetRedisCachePassword() string
	GetRedisCacheMaxIdle() int
	GetRedisCacheMaxActive() int
	GetRedisCacheIdleTimeout() int
}
type Project struct {
	Name    string
	Version string
	Tags    []string
}
type Database struct {
	DBType      string `toml:"db_type"`
	Server      string `toml:"server"`
	TablePrefix string `toml:"table_prefix"`
	MaxIdleConn int    `toml:"max_idle_conn"`
	MaxOpenConn int    `toml:"max_open_conn"`
}
type Runtime struct {
	Debug bool `toml:"debug"`
}
type ServiceDiscovery struct {
	Type                    string  
	Address                 string
	Port                    int
	Timeout                 int
	DeregisterAfterCritical int  `toml:"deregister_after_critical"`  
	HealthCheckInterval     int  `toml:"health_check_interval"`      
	AutoRegister            bool `toml:"auto_register"`
}
type Jwt struct {
	SecretKey        string `toml:"secret_key"`
	Issuer           string `toml:"issuer"`
	ExpireHour       int    `toml:"expire_hour"`
	HeaderPrefix     string `toml:"header_prefix"`
	VerifyIssuer     bool   `toml:"verify_issuer"`
	VerifyExpireHour bool   `toml:"verify_expire_hour"`
}
type Cors struct {
	Enable           bool     `toml:"enable"`
	AllowOrigins     []string `toml:"allow_origins"`
	AllowMethods     []string `toml:"allow_methods"`
	AllowHeaders     []string `toml:"allow_headers"`
	ExposeHeaders    []string `toml:"expose_headers"`
	AllowCredentials bool     `toml:"allow_credentials"`
	MaxAgeHour       int      `toml:"max_age_hour"`
}
type TLS struct {
	Enable        bool   `toml:"enable"`
	CAPemFile     string `toml:"ca_pem_file"`
	ServerPemFile string `toml:"server_pem_file"`
	ServerKeyFile string `toml:"server_key_file"`
	ClientPemFile string `toml:"client_pem_file"`
	ClientKeyFile string `toml:"client_key_file"`
}
type Security struct {
	Jwt  Jwt  `toml:"jwt"`
	Cors Cors `toml:"cors"`
	TLS  TLS  `toml:"tls"`
}
type DefaultConf struct {
	Project  Project  `toml:"project"`
	Runtime  Runtime  `toml:"runtime"`
	Security Security `toml:"security"`
	App      struct {
		Type    string `toml:"type"`
		Address string `toml:"address"`
		Port    int    `toml:"port"`
		ReadTimeout int `toml:"read_timeout"`
		ReadHeaderTimeout int `toml:"read_header_timeout"`
		WriteTimeout int `toml:"writer_timeout"`
		IdleTimeout int `toml:"idle_timeout"`
		MaxHeaderBytes int    `toml:"max_header_bytes"`
		TemplatePath   string `toml:"template_path"`
		MediaURL       string `toml:"media_url"`
		MediaPath      string `toml:"media_path"`
		StaticURL      string `toml:"static_url"`
		StaticPath     string `toml:"static_path"`
		MigrationPath  string `toml:"migration_path"`
		PageSize       int    `toml:"page_size"`
		MaxBodySize    int    `toml:"max_body_size"`
		AtomicRequest  bool   `toml:"atomic_request"`
		BaseURL string `toml:"base_url"`
	}
	Log struct {
		LogRootPath string `toml:"log_root_path"`  
		LogName     string `toml:"log_name"`       
	}
	Cache struct {
		Redis struct {
			Host        string `toml:"host"`
			Port        int    `toml:"port"`
			Password    string `toml:"password"`
			MaxIdle     int    `toml:"max_idle"`
			MaxActive   int    `toml:"max_active"`
			IdleTimeout int    `toml:"idle_timeout"`
		}
		Gcache struct {
			CacheAlgorithm string `toml:"cache_algorithm"`
			CacheSize      int    `toml:"cachesize"`
			Timeout        int    `toml:"timeout"`  
		}
	}
	Database         Database         `toml:"database"`
	ServiceDiscovery ServiceDiscovery `toml:"service_discovery"`
}
func (s *DefaultConf) GetRedisCacheHost() string     { return s.Cache.Redis.Host }
func (s *DefaultConf) GetRedisCachePort() int        { return s.Cache.Redis.Port }
func (s *DefaultConf) GetRedisCachePassword() string { return s.Cache.Redis.Password }
func (s *DefaultConf) GetRedisCacheMaxIdle() int     { return s.Cache.Redis.MaxIdle }
func (s *DefaultConf) GetRedisCacheMaxActive() int   { return s.Cache.Redis.MaxActive }
func (s *DefaultConf) GetRedisCacheIdleTimeout() int { return s.Cache.Redis.IdleTimeout }
func (s *DefaultConf) GetDbMaxIdleConn() int { return s.Database.MaxIdleConn }
func (s *DefaultConf) GetDbMaxOpenConn() int { return s.Database.MaxOpenConn }
func (s *DefaultConf) GetDBServer() string { return s.Database.Server }
func (s *DefaultConf) GetCorsEnable() bool { return s.Security.Cors.Enable }
func (s *DefaultConf) GetMaxAgeHour() int { return s.Security.Cors.MaxAgeHour }
func (s *DefaultConf) GetAllowOrigins() []string { return s.Security.Cors.AllowOrigins }
func (s *DefaultConf) GetAllowMethods() []string { return s.Security.Cors.AllowMethods }
func (s *DefaultConf) GetAllowHeaders() []string { return s.Security.Cors.AllowHeaders }
func (s *DefaultConf) GetExposeHeaders() []string { return s.Security.Cors.ExposeHeaders }
func (s *DefaultConf) GetAllowCredentials() bool {
	return s.Security.Cors.AllowCredentials
}
func (s *DefaultConf) GetAppReadTimeout() int { return s.App.ReadTimeout }
func (s *DefaultConf) GetAppReadHeaderTimeout() int { return s.App.ReadHeaderTimeout }
func (s *DefaultConf) GetAppWriteTimeout() int { return s.App.WriteTimeout }
func (s *DefaultConf) GetAppIdleTimeout() int { return s.App.IdleTimeout }
func (s *DefaultConf) GetAppMaxHeaderBytes() int { return s.App.MaxHeaderBytes }
func (s *DefaultConf) GetJwtSecretKey() string {
	return s.Security.Jwt.SecretKey
}
func (s *DefaultConf) GetJwtExpireHour() int {
	return s.Security.Jwt.ExpireHour
}
func (s *DefaultConf) GetJwtHeaderPrefix() string {
	return s.Security.Jwt.HeaderPrefix
}