32 lines
		
	
	
		
			840 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			840 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| package application
 | |
| 
 | |
| import (
 | |
| 	"fmt"
 | |
| 	"strconv"
 | |
| 
 | |
| 	"github.com/gorilla/sessions"
 | |
| 	log "github.com/sirupsen/logrus"
 | |
| 	"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), []byte(*p.CookieSecret))
 | |
| 		if err != nil {
 | |
| 			panic(err)
 | |
| 		}
 | |
| 		rs.Options.Domain = *p.CookieDomain
 | |
| 		log.Info("using redis session backend")
 | |
| 		store = rs
 | |
| 	} else {
 | |
| 		cs := sessions.NewCookieStore([]byte(*p.CookieSecret))
 | |
| 		cs.Options.Domain = *p.CookieDomain
 | |
| 		log.Info("using cookie session backend")
 | |
| 		store = cs
 | |
| 	}
 | |
| 	return store
 | |
| }
 | 
