diff --git a/server/constants/cookie.go b/server/constants/cookie.go index 6dda49d..8f6399b 100644 --- a/server/constants/cookie.go +++ b/server/constants/cookie.go @@ -5,6 +5,6 @@ const ( AppCookieName = "cookie" // AdminCookieName is the name of the cookie that is used to store the admin token AdminCookieName = "authorizer-admin" - + // MfaCookieName is the name of the cookie that is used to store the mfa session MfaCookieName = "mfa" ) diff --git a/server/cookie/mfa_session.go b/server/cookie/mfa_session.go index bf691ce..3fdcaac 100644 --- a/server/cookie/mfa_session.go +++ b/server/cookie/mfa_session.go @@ -12,7 +12,7 @@ import ( "github.com/gin-gonic/gin" ) -// SetSession sets the session cookie in the response +// SetMfaSession sets the mfa session cookie in the response func SetMfaSession(gc *gin.Context, sessionID string) { appCookieSecure, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyAppCookieSecure) if err != nil { @@ -47,7 +47,7 @@ func SetMfaSession(gc *gin.Context, sessionID string) { gc.SetCookie(constants.MfaCookieName+"_session_domain", sessionID, age, "/", domain, secure, httpOnly) } -// DeleteSession sets session cookies to expire +// DeleteMfaSession deletes the mfa session cookies to expire func DeleteMfaSession(gc *gin.Context) { appCookieSecure, err := memorystore.Provider.GetBoolStoreEnvVariable(constants.EnvKeyAppCookieSecure) if err != nil { @@ -69,7 +69,7 @@ func DeleteMfaSession(gc *gin.Context) { gc.SetCookie(constants.MfaCookieName+"_session_domain", "", -1, "/", domain, secure, httpOnly) } -// GetSession gets the session cookie from context +// GetMfaSession gets the mfa session cookie from context func GetMfaSession(gc *gin.Context) (string, error) { var cookie *http.Cookie var err error diff --git a/server/memorystore/providers/inmemory/store.go b/server/memorystore/providers/inmemory/store.go index 45a7986..d03a9df 100644 --- a/server/memorystore/providers/inmemory/store.go +++ b/server/memorystore/providers/inmemory/store.go @@ -42,11 +42,13 @@ func (c *provider) DeleteSessionForNamespace(namespace string) error { return nil } +// SetMfaSession sets the mfa session with key and value of email func (c *provider) SetMfaSession(email, key string, expiration int64) error { c.mfasessionStore.Set(email, key, email, expiration) return nil } +// GetMfaSession returns value of given mfa session func (c *provider) GetMfaSession(email, key string) (string, error) { val := c.mfasessionStore.Get(email, key) if val == "" { @@ -55,6 +57,7 @@ func (c *provider) GetMfaSession(email, key string) (string, error) { return val, nil } +// DeleteMfaSession deletes given mfa session from in-memory store. func (c *provider) DeleteMfaSession(email, key string) error { c.mfasessionStore.Remove(email, key) return nil diff --git a/server/memorystore/providers/providers.go b/server/memorystore/providers/providers.go index ae1249f..6b3eba0 100644 --- a/server/memorystore/providers/providers.go +++ b/server/memorystore/providers/providers.go @@ -12,9 +12,11 @@ type Provider interface { DeleteAllUserSessions(userId string) error // DeleteSessionForNamespace deletes the session for a given namespace DeleteSessionForNamespace(namespace string) error - + // SetMfaSession sets the mfa session with key and value of email SetMfaSession(email, key string, expiration int64) error + // GetMfaSession returns value of given mfa session GetMfaSession(email, key string) (string, error) + // DeleteMfaSession deletes given mfa session from in-memory store. DeleteMfaSession(email, key string) error // SetState sets the login state (key, value form) in the session store diff --git a/server/memorystore/providers/redis/store.go b/server/memorystore/providers/redis/store.go index d55e741..63e3e37 100644 --- a/server/memorystore/providers/redis/store.go +++ b/server/memorystore/providers/redis/store.go @@ -93,6 +93,7 @@ func (c *provider) DeleteSessionForNamespace(namespace string) error { return nil } +// SetMfaSession sets the mfa session with key and value of email func (c *provider) SetMfaSession(email, key string, expiration int64) error { currentTime := time.Now() expireTime := time.Unix(expiration, 0) @@ -105,6 +106,7 @@ func (c *provider) SetMfaSession(email, key string, expiration int64) error { return nil } + // GetMfaSession returns value of given mfa session func (c *provider) GetMfaSession(email, key string) (string, error) { data, err := c.store.Get(c.ctx, fmt.Sprintf("%s%s:%s", mfaSessionPrefix, email, key)).Result() if err != nil { @@ -113,6 +115,7 @@ func (c *provider) GetMfaSession(email, key string) (string, error) { return data, nil } +// DeleteMfaSession deletes given mfa session from in-memory store. func (c *provider) DeleteMfaSession(email, key string) error { if err := c.store.Del(c.ctx, fmt.Sprintf("%s%s:%s", mfaSessionPrefix, email, key)).Err(); err != nil { log.Debug("Error deleting user session from redis: ", err)