forked from gitea/gitea
Movde dependents on macaron from modules/setting (#10050)
Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
parent
c09e020558
commit
79ce91fdde
|
@ -11,6 +11,9 @@ import (
|
||||||
"code.gitea.io/gitea/modules/setting"
|
"code.gitea.io/gitea/modules/setting"
|
||||||
|
|
||||||
mc "gitea.com/macaron/cache"
|
mc "gitea.com/macaron/cache"
|
||||||
|
|
||||||
|
_ "gitea.com/macaron/cache/memcache" // memcache plugin for cache
|
||||||
|
_ "gitea.com/macaron/cache/redis"
|
||||||
)
|
)
|
||||||
|
|
||||||
var conn mc.Cache
|
var conn mc.Cache
|
||||||
|
|
|
@ -9,9 +9,6 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
|
||||||
_ "gitea.com/macaron/cache/memcache" // memcache plugin for cache
|
|
||||||
_ "gitea.com/macaron/cache/redis"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
// Cache represents cache settings
|
// Cache represents cache settings
|
||||||
|
|
|
@ -8,34 +8,31 @@ import (
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
|
||||||
"gitea.com/macaron/cors"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// CORSConfig defines CORS settings
|
// CORSConfig defines CORS settings
|
||||||
CORSConfig cors.Options
|
CORSConfig = struct {
|
||||||
// EnableCORS defines whether CORS settings is enabled or not
|
Enabled bool
|
||||||
EnableCORS bool
|
Scheme string
|
||||||
|
AllowDomain []string
|
||||||
|
AllowSubdomain bool
|
||||||
|
Methods []string
|
||||||
|
MaxAge time.Duration
|
||||||
|
AllowCredentials bool
|
||||||
|
}{
|
||||||
|
Enabled: false,
|
||||||
|
MaxAge: 10 * time.Minute,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func newCORSService() {
|
func newCORSService() {
|
||||||
sec := Cfg.Section("cors")
|
sec := Cfg.Section("cors")
|
||||||
// Check cors setting.
|
if err := sec.MapTo(&CORSConfig); err != nil {
|
||||||
EnableCORS = sec.Key("ENABLED").MustBool(false)
|
log.Fatal("Failed to map cors settings: %v", err)
|
||||||
|
|
||||||
maxAge := sec.Key("MAX_AGE").MustDuration(10 * time.Minute)
|
|
||||||
|
|
||||||
CORSConfig = cors.Options{
|
|
||||||
Scheme: sec.Key("SCHEME").String(),
|
|
||||||
AllowDomain: sec.Key("ALLOW_DOMAIN").Strings(","),
|
|
||||||
AllowSubdomain: sec.Key("ALLOW_SUBDOMAIN").MustBool(),
|
|
||||||
Methods: sec.Key("METHODS").Strings(","),
|
|
||||||
MaxAgeSeconds: int(maxAge.Seconds()),
|
|
||||||
AllowCredentials: sec.Key("ALLOW_CREDENTIALS").MustBool(),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if EnableCORS {
|
if CORSConfig.Enabled {
|
||||||
log.Info("CORS Service Enabled")
|
log.Info("CORS Service Enabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,28 +11,47 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"code.gitea.io/gitea/modules/log"
|
"code.gitea.io/gitea/modules/log"
|
||||||
|
|
||||||
"gitea.com/macaron/session"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
// SessionConfig difines Session settings
|
// SessionConfig difines Session settings
|
||||||
SessionConfig session.Options
|
SessionConfig = struct {
|
||||||
|
Provider string
|
||||||
|
// Provider configuration, it's corresponding to provider.
|
||||||
|
ProviderConfig string
|
||||||
|
// Cookie name to save session ID. Default is "MacaronSession".
|
||||||
|
CookieName string
|
||||||
|
// Cookie path to store. Default is "/".
|
||||||
|
CookiePath string
|
||||||
|
// GC interval time in seconds. Default is 3600.
|
||||||
|
Gclifetime int64
|
||||||
|
// Max life time in seconds. Default is whatever GC interval time is.
|
||||||
|
Maxlifetime int64
|
||||||
|
// Use HTTPS only. Default is false.
|
||||||
|
Secure bool
|
||||||
|
// Cookie domain name. Default is empty.
|
||||||
|
Domain string
|
||||||
|
}{
|
||||||
|
CookieName: "i_like_gitea",
|
||||||
|
Gclifetime: 86400,
|
||||||
|
Maxlifetime: 86400,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func newSessionService() {
|
func newSessionService() {
|
||||||
SessionConfig.Provider = Cfg.Section("session").Key("PROVIDER").In("memory",
|
sec := Cfg.Section("session")
|
||||||
|
SessionConfig.Provider = sec.Key("PROVIDER").In("memory",
|
||||||
[]string{"memory", "file", "redis", "mysql", "postgres", "couchbase", "memcache", "nodb"})
|
[]string{"memory", "file", "redis", "mysql", "postgres", "couchbase", "memcache", "nodb"})
|
||||||
SessionConfig.ProviderConfig = strings.Trim(Cfg.Section("session").Key("PROVIDER_CONFIG").MustString(path.Join(AppDataPath, "sessions")), "\" ")
|
SessionConfig.ProviderConfig = strings.Trim(sec.Key("PROVIDER_CONFIG").MustString(path.Join(AppDataPath, "sessions")), "\" ")
|
||||||
if SessionConfig.Provider == "file" && !filepath.IsAbs(SessionConfig.ProviderConfig) {
|
if SessionConfig.Provider == "file" && !filepath.IsAbs(SessionConfig.ProviderConfig) {
|
||||||
SessionConfig.ProviderConfig = path.Join(AppWorkPath, SessionConfig.ProviderConfig)
|
SessionConfig.ProviderConfig = path.Join(AppWorkPath, SessionConfig.ProviderConfig)
|
||||||
}
|
}
|
||||||
SessionConfig.CookieName = Cfg.Section("session").Key("COOKIE_NAME").MustString("i_like_gitea")
|
SessionConfig.CookieName = sec.Key("COOKIE_NAME").MustString("i_like_gitea")
|
||||||
SessionConfig.CookiePath = AppSubURL
|
SessionConfig.CookiePath = AppSubURL
|
||||||
SessionConfig.Secure = Cfg.Section("session").Key("COOKIE_SECURE").MustBool(false)
|
SessionConfig.Secure = sec.Key("COOKIE_SECURE").MustBool(false)
|
||||||
SessionConfig.Gclifetime = Cfg.Section("session").Key("GC_INTERVAL_TIME").MustInt64(86400)
|
SessionConfig.Gclifetime = sec.Key("GC_INTERVAL_TIME").MustInt64(86400)
|
||||||
SessionConfig.Maxlifetime = Cfg.Section("session").Key("SESSION_LIFE_TIME").MustInt64(86400)
|
SessionConfig.Maxlifetime = sec.Key("SESSION_LIFE_TIME").MustInt64(86400)
|
||||||
SessionConfig.Domain = Cfg.Section("session").Key("DOMAIN").String()
|
SessionConfig.Domain = sec.Key("DOMAIN").String()
|
||||||
|
|
||||||
shadowConfig, err := json.Marshal(SessionConfig)
|
shadowConfig, err := json.Marshal(SessionConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -319,7 +319,14 @@ func Config(ctx *context.Context) {
|
||||||
if err := json.Unmarshal([]byte(sessionCfg.ProviderConfig), &realSession); err != nil {
|
if err := json.Unmarshal([]byte(sessionCfg.ProviderConfig), &realSession); err != nil {
|
||||||
log.Error("Unable to unmarshall session config for virtualed provider config: %s\nError: %v", sessionCfg.ProviderConfig, err)
|
log.Error("Unable to unmarshall session config for virtualed provider config: %s\nError: %v", sessionCfg.ProviderConfig, err)
|
||||||
}
|
}
|
||||||
sessionCfg = realSession
|
sessionCfg.Provider = realSession.Provider
|
||||||
|
sessionCfg.ProviderConfig = realSession.ProviderConfig
|
||||||
|
sessionCfg.CookieName = realSession.CookieName
|
||||||
|
sessionCfg.CookiePath = realSession.CookiePath
|
||||||
|
sessionCfg.Gclifetime = realSession.Gclifetime
|
||||||
|
sessionCfg.Maxlifetime = realSession.Maxlifetime
|
||||||
|
sessionCfg.Secure = realSession.Secure
|
||||||
|
sessionCfg.Domain = realSession.Domain
|
||||||
}
|
}
|
||||||
sessionCfg.ProviderConfig = shadowPassword(sessionCfg.Provider, sessionCfg.ProviderConfig)
|
sessionCfg.ProviderConfig = shadowPassword(sessionCfg.Provider, sessionCfg.ProviderConfig)
|
||||||
ctx.Data["SessionConfig"] = sessionCfg
|
ctx.Data["SessionConfig"] = sessionCfg
|
||||||
|
|
|
@ -201,7 +201,16 @@ func NewMacaron() *macaron.Macaron {
|
||||||
m.Use(captcha.Captchaer(captcha.Options{
|
m.Use(captcha.Captchaer(captcha.Options{
|
||||||
SubURL: setting.AppSubURL,
|
SubURL: setting.AppSubURL,
|
||||||
}))
|
}))
|
||||||
m.Use(session.Sessioner(setting.SessionConfig))
|
m.Use(session.Sessioner(session.Options{
|
||||||
|
Provider: setting.SessionConfig.Provider,
|
||||||
|
ProviderConfig: setting.SessionConfig.ProviderConfig,
|
||||||
|
CookieName: setting.SessionConfig.CookieName,
|
||||||
|
CookiePath: setting.SessionConfig.CookiePath,
|
||||||
|
Gclifetime: setting.SessionConfig.Gclifetime,
|
||||||
|
Maxlifetime: setting.SessionConfig.Maxlifetime,
|
||||||
|
Secure: setting.SessionConfig.Secure,
|
||||||
|
Domain: setting.SessionConfig.Domain,
|
||||||
|
}))
|
||||||
m.Use(csrf.Csrfer(csrf.Options{
|
m.Use(csrf.Csrfer(csrf.Options{
|
||||||
Secret: setting.SecretKey,
|
Secret: setting.SecretKey,
|
||||||
Cookie: setting.CSRFCookieName,
|
Cookie: setting.CSRFCookieName,
|
||||||
|
@ -963,8 +972,15 @@ func RegisterRoutes(m *macaron.Macaron) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var handlers []macaron.Handler
|
var handlers []macaron.Handler
|
||||||
if setting.EnableCORS {
|
if setting.CORSConfig.Enabled {
|
||||||
handlers = append(handlers, cors.CORS(setting.CORSConfig))
|
handlers = append(handlers, cors.CORS(cors.Options{
|
||||||
|
Scheme: setting.CORSConfig.Scheme,
|
||||||
|
AllowDomain: setting.CORSConfig.AllowDomain,
|
||||||
|
AllowSubdomain: setting.CORSConfig.AllowSubdomain,
|
||||||
|
Methods: setting.CORSConfig.Methods,
|
||||||
|
MaxAgeSeconds: int(setting.CORSConfig.MaxAge.Seconds()),
|
||||||
|
AllowCredentials: setting.CORSConfig.AllowCredentials,
|
||||||
|
}))
|
||||||
}
|
}
|
||||||
handlers = append(handlers, ignSignIn)
|
handlers = append(handlers, ignSignIn)
|
||||||
m.Group("/api", func() {
|
m.Group("/api", func() {
|
||||||
|
|
Loading…
Reference in New Issue