From e1862ca8eb84751957ebe830488a3e84f5a68adb Mon Sep 17 00:00:00 2001 From: Gregory Wells Date: Sun, 7 Jun 2026 20:02:12 -0400 Subject: [PATCH] allow redis to be selected as session store type --- go.mod | 3 +++ go.sum | 6 ++++++ src/main/main.go | 2 +- src/session/session_manager.go | 6 ++++++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 5545350..07552eb 100644 --- a/go.mod +++ b/go.mod @@ -6,7 +6,10 @@ require github.com/go-ldap/ldap/v3 v3.4.13 require ( github.com/Azure/go-ntlmssp v0.1.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 // indirect github.com/google/uuid v1.6.0 // indirect + github.com/redis/go-redis/v9 v9.20.0 // indirect + go.uber.org/atomic v1.11.0 // indirect golang.org/x/crypto v0.48.0 // indirect ) diff --git a/go.sum b/go.sum index 1995a09..28cdb9b 100644 --- a/go.sum +++ b/go.sum @@ -2,6 +2,8 @@ github.com/Azure/go-ntlmssp v0.1.0 h1:DjFo6YtWzNqNvQdrwEyr/e4nhU3vRiwenz5QX7sFz+ github.com/Azure/go-ntlmssp v0.1.0/go.mod h1:NYqdhxd/8aAct/s4qSYZEerdPuH1liG2/X9DiVTbhpk= github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e h1:4dAU9FXIyQktpoUAgOJK3OTFc/xug0PCXYCqU0FgDKI= github.com/alexbrainman/sspi v0.0.0-20250919150558-7d374ff0d59e/go.mod h1:cEWa1LVoE5KvSD9ONXsZrj0z6KqySlCCNKHlLzbqAt4= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/go-asn1-ber/asn1-ber v1.5.8-0.20250403174932-29230038a667 h1:BP4M0CvQ4S3TGls2FvczZtj5Re/2ZzkV9VwqPHH/3Bo= @@ -30,8 +32,12 @@ github.com/jcmturner/rpc/v2 v2.0.3 h1:7FXXj8Ti1IaVFpSAziCZWNzbNuZmnvw/i6CqLNdWfZ github.com/jcmturner/rpc/v2 v2.0.3/go.mod h1:VUJYCIDm3PVOEHw8sgt091/20OJjskO/YJki3ELg/Hc= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/redis/go-redis/v9 v9.20.0 h1:WnQYxLkgO2xiXTCJY0ldIiI8dNqCDlQAG+AtaH7a2a0= +github.com/redis/go-redis/v9 v9.20.0/go.mod h1:v/M13XI1PVCDcm01VtPFOADfZtHf8YW3baQf57KlIkA= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= +go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= golang.org/x/crypto v0.48.0 h1:/VRzVqiRSggnhY7gNRxPauEQ5Drw9haKdM0jqfcCFts= golang.org/x/crypto v0.48.0/go.mod h1:r0kV5h3qnFPlQnBSrULhlsRfryS2pmewsg+XfMgkVos= golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= diff --git a/src/main/main.go b/src/main/main.go index 8568764..7dda044 100644 --- a/src/main/main.go +++ b/src/main/main.go @@ -213,7 +213,7 @@ func changePasswordHandler(w http.ResponseWriter, r *http.Request) { func main() { logging.Info("Starting the server") sessionManager = session.GetSessionManager() - sessionManager.SetStoreType(session.InMemory) + sessionManager.SetStoreType(session.Redis) var err error serverConfig, err = loadServerConfig("./data/config.json") diff --git a/src/session/session_manager.go b/src/session/session_manager.go index 68034b6..fcd65b0 100644 --- a/src/session/session_manager.go +++ b/src/session/session_manager.go @@ -21,6 +21,7 @@ type StoreType int const ( InMemory StoreType = iota + Redis ) func GetSessionManager() *SessionManager { @@ -38,6 +39,11 @@ func (manager *SessionManager) SetStoreType(storeType StoreType) { manager.store = NewMemoryStore() break } + case Redis: + { + manager.store = NewRedisStore() + break + } } }