2019-02-10 04:37:37 +03:00
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.
package setting
import (
2019-04-20 09:44:50 +03:00
"encoding/json"
2019-02-10 04:37:37 +03:00
"path"
"path/filepath"
"strings"
"code.gitea.io/gitea/modules/log"
2019-04-20 09:44:50 +03:00
2019-08-23 19:40:30 +03:00
"gitea.com/macaron/session"
2019-02-10 04:37:37 +03:00
)
var (
// SessionConfig difines Session settings
SessionConfig session . Options
)
func newSessionService ( ) {
SessionConfig . Provider = Cfg . Section ( "session" ) . 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" ) ) , "\" " )
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 . 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 )
2019-07-12 16:57:31 +03:00
SessionConfig . Domain = Cfg . Section ( "session" ) . Key ( "DOMAIN" ) . String ( )
2019-02-10 04:37:37 +03:00
2019-04-20 09:44:50 +03:00
shadowConfig , err := json . Marshal ( SessionConfig )
if err != nil {
log . Fatal ( "Can't shadow session config: %v" , err )
}
SessionConfig . ProviderConfig = string ( shadowConfig )
SessionConfig . Provider = "VirtualSession"
2019-02-10 04:37:37 +03:00
log . Info ( "Session Service Enabled" )
}