Mercurial > gemma
changeset 190:3457a60fb12d
Added stub for a persistent session store.
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 20 Jul 2018 17:11:57 +0200 |
parents | 96bb671cdd98 |
children | 77d23b5039bb 1585c334e8a7 |
files | auth/connection.go auth/persistent.go config/config.go |
diffstat | 3 files changed, 67 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/auth/connection.go Fri Jul 20 11:09:36 2018 +0200 +++ b/auth/connection.go Fri Jul 20 17:11:57 2018 +0200 @@ -6,6 +6,8 @@ "log" "sync" "time" + + "gemma.intevation.de/gemma/config" ) var ErrNoSuchToken = errors.New("No such token") @@ -19,7 +21,16 @@ Shutdown() error } -var ConnPool ConnectionPool = NewInMemoryConnectionPool() +var ConnPool = func() ConnectionPool { + if config.Config.SessionStore != "" { + cp, err := NewPersistentConnectionPool(config.Config.SessionStore) + if err != nil { + log.Panicf("Error with session store: %v\n", err) + } + return cp + } + return NewInMemoryConnectionPool() +}() const ( maxOpen = 16
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/auth/persistent.go Fri Jul 20 17:11:57 2018 +0200 @@ -0,0 +1,49 @@ +package auth + +import ( + "database/sql" + "log" +) + +type PersistentConnectionPool struct { + filename string +} + +func NewPersistentConnectionPool(filename string) (*PersistentConnectionPool, error) { + + log.Println("NewInMemoryConnectionPool: Not implemented, yet.") + pcp := &PersistentConnectionPool{ + filename: filename, + } + return pcp, nil +} + +func (pcp *PersistentConnectionPool) Delete(token string) bool { + log.Println("Delete: Not implemented, yet.") + return false +} + +func (pcp *PersistentConnectionPool) Add(token string, session *Session) *Connection { + log.Println("Add: Not implemented, yet.") + return nil +} + +func (pcp *PersistentConnectionPool) Renew(token string) (string, error) { + log.Println("Renew: Not implemented, yet.") + return "", nil +} + +func (pcp *PersistentConnectionPool) Do(token string, fn func(*sql.DB) error) error { + log.Println("Do: Not implemented, yet.") + return nil +} + +func (pcp *PersistentConnectionPool) Session(token string) *Session { + log.Println("Session: Not implemented, yet.") + return nil +} + +func (pcp *PersistentConnectionPool) Shutdown() error { + log.Println("Shutdown: Not implemented, yet.") + return nil +}
--- a/config/config.go Fri Jul 20 11:09:36 2018 +0200 +++ b/config/config.go Fri Jul 20 17:11:57 2018 +0200 @@ -14,16 +14,17 @@ DBName string DBSSLMode string - JWTSignKey []byte + SessionStore string } func NewConfiguration() *Configuration { // TODO: Load from file. return &Configuration{ - DBHost: envString("GEMMA_DB_HOST", "localhost"), - DBPort: envUint("GEMMA_DB_PORT", 5432), - DBName: envString("GEMMA_DB_NAME", "gemma"), - DBSSLMode: envString("GEMMA_DB_SSL_MODE", "require"), + DBHost: envString("GEMMA_DB_HOST", "localhost"), + DBPort: envUint("GEMMA_DB_PORT", 5432), + DBName: envString("GEMMA_DB_NAME", "gemma"), + DBSSLMode: envString("GEMMA_DB_SSL_MODE", "require"), + SessionStore: envString("GEMMA_SESSION_STORE", ""), } }