mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-30 21:26:17 +01:00
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
6 changed files with 74 additions and 35 deletions
3
modules/cache/cache.go
vendored
3
modules/cache/cache.go
vendored
|
@ -11,6 +11,9 @@ import (
|
|||
"code.gitea.io/gitea/modules/setting"
|
||||
|
||||
mc "gitea.com/macaron/cache"
|
||||
|
||||
_ "gitea.com/macaron/cache/memcache" // memcache plugin for cache
|
||||
_ "gitea.com/macaron/cache/redis"
|
||||
)
|
||||
|
||||
var conn mc.Cache
|
||||
|
|
|
@ -9,9 +9,6 @@ import (
|
|||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
|
||||
_ "gitea.com/macaron/cache/memcache" // memcache plugin for cache
|
||||
_ "gitea.com/macaron/cache/redis"
|
||||
)
|
||||
|
||||
// Cache represents cache settings
|
||||
|
|
|
@ -8,34 +8,31 @@ import (
|
|||
"time"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
|
||||
"gitea.com/macaron/cors"
|
||||
)
|
||||
|
||||
var (
|
||||
// CORSConfig defines CORS settings
|
||||
CORSConfig cors.Options
|
||||
// EnableCORS defines whether CORS settings is enabled or not
|
||||
EnableCORS bool
|
||||
CORSConfig = struct {
|
||||
Enabled bool
|
||||
Scheme string
|
||||
AllowDomain []string
|
||||
AllowSubdomain bool
|
||||
Methods []string
|
||||
MaxAge time.Duration
|
||||
AllowCredentials bool
|
||||
}{
|
||||
Enabled: false,
|
||||
MaxAge: 10 * time.Minute,
|
||||
}
|
||||
)
|
||||
|
||||
func newCORSService() {
|
||||
sec := Cfg.Section("cors")
|
||||
// Check cors setting.
|
||||
EnableCORS = sec.Key("ENABLED").MustBool(false)
|
||||
|
||||
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 err := sec.MapTo(&CORSConfig); err != nil {
|
||||
log.Fatal("Failed to map cors settings: %v", err)
|
||||
}
|
||||
|
||||
if EnableCORS {
|
||||
if CORSConfig.Enabled {
|
||||
log.Info("CORS Service Enabled")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,28 +11,47 @@ import (
|
|||
"strings"
|
||||
|
||||
"code.gitea.io/gitea/modules/log"
|
||||
|
||||
"gitea.com/macaron/session"
|
||||
)
|
||||
|
||||
var (
|
||||
// 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() {
|
||||
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"})
|
||||
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) {
|
||||
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.Secure = Cfg.Section("session").Key("COOKIE_SECURE").MustBool(false)
|
||||
SessionConfig.Gclifetime = Cfg.Section("session").Key("GC_INTERVAL_TIME").MustInt64(86400)
|
||||
SessionConfig.Maxlifetime = Cfg.Section("session").Key("SESSION_LIFE_TIME").MustInt64(86400)
|
||||
SessionConfig.Domain = Cfg.Section("session").Key("DOMAIN").String()
|
||||
SessionConfig.Secure = sec.Key("COOKIE_SECURE").MustBool(false)
|
||||
SessionConfig.Gclifetime = sec.Key("GC_INTERVAL_TIME").MustInt64(86400)
|
||||
SessionConfig.Maxlifetime = sec.Key("SESSION_LIFE_TIME").MustInt64(86400)
|
||||
SessionConfig.Domain = sec.Key("DOMAIN").String()
|
||||
|
||||
shadowConfig, err := json.Marshal(SessionConfig)
|
||||
if err != nil {
|
||||
|
|
|
@ -319,7 +319,14 @@ func Config(ctx *context.Context) {
|
|||
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)
|
||||
}
|
||||
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)
|
||||
ctx.Data["SessionConfig"] = sessionCfg
|
||||
|
|
|
@ -201,7 +201,16 @@ func NewMacaron() *macaron.Macaron {
|
|||
m.Use(captcha.Captchaer(captcha.Options{
|
||||
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{
|
||||
Secret: setting.SecretKey,
|
||||
Cookie: setting.CSRFCookieName,
|
||||
|
@ -963,8 +972,15 @@ func RegisterRoutes(m *macaron.Macaron) {
|
|||
}
|
||||
|
||||
var handlers []macaron.Handler
|
||||
if setting.EnableCORS {
|
||||
handlers = append(handlers, cors.CORS(setting.CORSConfig))
|
||||
if setting.CORSConfig.Enabled {
|
||||
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)
|
||||
m.Group("/api", func() {
|
||||
|
|
Loading…
Reference in a new issue