diff --git a/oauthproxy.go b/oauthproxy.go index 888e0918..5a21072f 100644 --- a/oauthproxy.go +++ b/oauthproxy.go @@ -565,7 +565,7 @@ func (p *OAuthProxy) ClearSessionCookie(rw http.ResponseWriter, req *http.Reques } func (p *OAuthProxy) ClearAllSessions(req *http.Request, session *sessionsapi.SessionState) error { - return p.sessionStore.ClearAll(req, session) + return p.sessionStore.ClearAllUserSessions(req, session) } // LoadCookiedSession reads the user's authentication details from the request diff --git a/pkg/apis/sessions/interfaces.go b/pkg/apis/sessions/interfaces.go index 83a3f309..395f3087 100644 --- a/pkg/apis/sessions/interfaces.go +++ b/pkg/apis/sessions/interfaces.go @@ -12,7 +12,7 @@ type SessionStore interface { Save(rw http.ResponseWriter, req *http.Request, s *SessionState) error Load(req *http.Request) (*SessionState, error) Clear(rw http.ResponseWriter, req *http.Request) error - ClearAll(req *http.Request, session *SessionState) error + ClearAllUserSessions(req *http.Request, session *SessionState) error VerifyConnection(ctx context.Context) error } diff --git a/pkg/sessions/cookie/session_store.go b/pkg/sessions/cookie/session_store.go index 415d4971..2b69205e 100644 --- a/pkg/sessions/cookie/session_store.go +++ b/pkg/sessions/cookie/session_store.go @@ -34,8 +34,8 @@ type SessionStore struct { } // ClearAll implements sessions.SessionStore. -func (s *SessionStore) ClearAll(req *http.Request, session *sessions.SessionState) error { - panic("unimplemented") +func (s *SessionStore) ClearAllUserSessions(req *http.Request, session *sessions.SessionState) error { + return fmt.Errorf("ClearAllUserSessions is only supported by redis store") } // Save takes a sessions.SessionState and stores the information from it diff --git a/pkg/sessions/persistence/manager.go b/pkg/sessions/persistence/manager.go index 56ac56b1..1f6809f2 100644 --- a/pkg/sessions/persistence/manager.go +++ b/pkg/sessions/persistence/manager.go @@ -75,7 +75,7 @@ func (m *Manager) Load(req *http.Request) (*sessions.SessionState, error) { } // ClearAll implements sessions.SessionStore. -func (m *Manager) ClearAll(req *http.Request, session *sessions.SessionState) error { +func (m *Manager) ClearAllUserSessions(req *http.Request, session *sessions.SessionState) error { ticket, _ := decodeTicketFromRequest(req, m.Options) sessionKey := encryption.EncryptStringWithSecret(session.User+session.Email, ticket.options.Secret) keys, err := m.Store.LoadList(req.Context(), sessionKey)