diff options
-rw-r--r-- | api4/context.go | 6 | ||||
-rw-r--r-- | app/session.go | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/api4/context.go b/api4/context.go index 1f27431d2..9f3822633 100644 --- a/api4/context.go +++ b/api4/context.go @@ -125,8 +125,10 @@ func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { if err != nil { l4g.Info(utils.T("api.context.invalid_session.error"), err.Error()) - c.RemoveSessionCookie(w, r) - if h.requireSession { + if err.StatusCode == http.StatusInternalServerError { + c.Err = err + } else if h.requireSession { + c.RemoveSessionCookie(w, r) c.Err = model.NewAppError("ServeHTTP", "api.context.session_expired.app_error", nil, "token="+token, http.StatusUnauthorized) } } else if !session.IsOAuth && tokenLocation == app.TokenLocationQueryString { diff --git a/app/session.go b/app/session.go index c9208f2b2..43fbf7979 100644 --- a/app/session.go +++ b/app/session.go @@ -54,6 +54,8 @@ func (a *App) GetSession(token string) (*model.Session, *model.AppError) { a.AddSessionToCache(session) } } + } else if sessionResult.Err.StatusCode == http.StatusInternalServerError { + return nil, sessionResult.Err } } |