diff --git a/conf/defaults.ini b/conf/defaults.ini index 69d045dc4ae..20b1f67a18b 100644 --- a/conf/defaults.ini +++ b/conf/defaults.ini @@ -67,7 +67,7 @@ path = grafana.db #################################### Session #################################### [session] -# Either "memory", "file", "redis", "mysql", "postgres", default is "file" +# Either "memory", "file", "redis", "mysql", "postgres", "memcache", default is "file" provider = file # Provider config options @@ -76,6 +76,8 @@ provider = file # redis: config like redis server e.g. `addr=127.0.0.1:6379,pool_size=100,db=grafana` # postgres: user=a password=b host=localhost port=5432 dbname=c sslmode=disable # mysql: go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` +# memcache: 127.0.0.1:11211 + provider_config = sessions diff --git a/docs/sources/installation/configuration.md b/docs/sources/installation/configuration.md index e68edcbca0c..daa2d665e07 100644 --- a/docs/sources/installation/configuration.md +++ b/docs/sources/installation/configuration.md @@ -355,7 +355,7 @@ Set to `true` to enable auto sign up of users who do not exist in Grafana DB. De ### provider -Valid values are `memory`, `file`, `mysql`, `postgres`. Default is `file`. +Valid values are `memory`, `file`, `mysql`, `postgres`, `memcache`. Default is `file`. ### provider_config @@ -365,6 +365,7 @@ session provider you have configured. - **file:** session file path, e.g. `data/sessions` - **mysql:** go-sql-driver/mysql dsn config string, e.g. `user:password@tcp(127.0.0.1:3306)/database_name` - **postgres:** ex: user=a password=b host=localhost port=5432 dbname=c sslmode=disable +- **memcache:** ex: 127.0.0.1:11211 If you use MySQL or Postgres as the session store you need to create the session table manually. diff --git a/pkg/middleware/session.go b/pkg/middleware/session.go index fc1512e5bd6..57027f9bca7 100644 --- a/pkg/middleware/session.go +++ b/pkg/middleware/session.go @@ -8,6 +8,7 @@ import ( _ "github.com/macaron-contrib/session/mysql" _ "github.com/macaron-contrib/session/postgres" _ "github.com/macaron-contrib/session/redis" + _ "github.com/macaron-contrib/session/memcache" ) const ( diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go index d6a853a9cdc..f28a7bcd1b3 100644 --- a/pkg/setting/setting.go +++ b/pkg/setting/setting.go @@ -473,7 +473,7 @@ func NewConfigContext(args *CommandLineArgs) error { func readSessionConfig() { sec := Cfg.Section("session") SessionOptions = session.Options{} - SessionOptions.Provider = sec.Key("provider").In("memory", []string{"memory", "file", "redis", "mysql", "postgres"}) + SessionOptions.Provider = sec.Key("provider").In("memory", []string{"memory", "file", "redis", "mysql", "postgres", "memcache"}) SessionOptions.ProviderConfig = strings.Trim(sec.Key("provider_config").String(), "\" ") SessionOptions.CookieName = sec.Key("cookie_name").MustString("grafana_sess") SessionOptions.CookiePath = AppSubUrl