diff --git a/src/logging/logging.go b/src/logging/logging.go index 5e70b44..4c5f1c8 100644 --- a/src/logging/logging.go +++ b/src/logging/logging.go @@ -9,6 +9,7 @@ type EventType int const ( ReadFile EventType = iota + AuthenticateUser ) func Info(message string) { @@ -58,5 +59,10 @@ func Event(eventType EventType, eventData ...any) { log.Printf("Reading file %s", eventData[0]) break } + case AuthenticateUser: + { + log.Printf("Authenticating user %s", eventData[0]) + break + } } } diff --git a/src/main/main.go b/src/main/main.go index b722105..2a4e09c 100644 --- a/src/main/main.go +++ b/src/main/main.go @@ -57,6 +57,7 @@ func createUserPhoto(username string, photoData []byte) error { } func authenticateUser(username, password string) (UserData, error) { + logging.Event(logging.AuthenticateUser, username) ldapServerMutex.Lock() defer ldapServerMutex.Unlock() if ldapServer.Connection == nil { @@ -232,9 +233,7 @@ func logoutHandler(w http.ResponseWriter, r *http.Request) { } } - sessionMutex.Lock() - delete(sessions, token) - sessionMutex.Unlock() + deleteSession(token) http.Redirect(w, r, "/login", http.StatusSeeOther) } diff --git a/src/main/session.go b/src/main/session.go index 662c092..b883de6 100644 --- a/src/main/session.go +++ b/src/main/session.go @@ -94,3 +94,13 @@ func validateSession(r *http.Request) (bool, *SessionData) { logging.Infof("Validated session for %s", sessionData.data.Username) return true, &sessionData } + +func deleteSession(session_id string) { + sessionMutex.Lock() + + tokenEncoded := sha256.Sum256([]byte(session_id)) + tokenEncodedString := string(tokenEncoded[:]) + + delete(sessions, tokenEncodedString) + sessionMutex.Unlock() +}