package application import ( "fmt" "net/http" "strconv" "github.com/gorilla/sessions" "goauthentik.io/api" "goauthentik.io/internal/config" "gopkg.in/boj/redistore.v1" ) func GetStore(p api.ProxyOutpostConfig) sessions.Store { var store sessions.Store if config.G.Redis.Host != "" { rs, err := redistore.NewRediStoreWithDB(10, "tcp", fmt.Sprintf("%s:%d", config.G.Redis.Host, config.G.Redis.Port), config.G.Redis.Password, strconv.Itoa(config.G.Redis.OutpostSessionDB)) if err != nil { panic(err) } rs.Options.Domain = *p.CookieDomain rs.Options.SameSite = http.SameSiteNoneMode store = rs } else { cs := sessions.NewCookieStore([]byte(*p.CookieSecret)) cs.Options.Domain = *p.CookieDomain cs.Options.SameSite = http.SameSiteNoneMode store = cs } return store }