mirror of
https://github.com/oauth2-proxy/oauth2-proxy.git
synced 2025-05-29 23:17:38 +02:00
Refactor refreshSession method to reduce number of return
This commit is contained in:
parent
2781ea1c95
commit
b734de16e6
@ -145,15 +145,7 @@ func (s *storedSessionLoader) refreshSession(rw http.ResponseWriter, req *http.R
|
|||||||
err := session.ObtainLock(req.Context(), SessionLockExpireTime)
|
err := session.ObtainLock(req.Context(), SessionLockExpireTime)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.Errorf("Unable to obtain lock: %v", err)
|
logger.Errorf("Unable to obtain lock: %v", err)
|
||||||
wasRefreshed, err := s.checkForConcurrentRefresh(session, req)
|
return s.handleObtainLockError(req, session)
|
||||||
if err != nil {
|
|
||||||
logger.Errorf("Unable to wait for obtained lock: %v", err)
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
if !wasRefreshed {
|
|
||||||
return errors.New("unable to obtain lock and session was also not refreshed via concurrent request")
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
err = session.ReleaseLock(req.Context())
|
err = session.ReleaseLock(req.Context())
|
||||||
@ -195,6 +187,18 @@ func (s *storedSessionLoader) refreshSession(rw http.ResponseWriter, req *http.R
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *storedSessionLoader) handleObtainLockError(req *http.Request, session *sessionsapi.SessionState) error {
|
||||||
|
wasRefreshed, err := s.checkForConcurrentRefresh(session, req)
|
||||||
|
if err != nil {
|
||||||
|
logger.Errorf("Unable to wait for obtained lock: %v", err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if !wasRefreshed {
|
||||||
|
return errors.New("unable to obtain lock and session was also not refreshed via concurrent request")
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func (s *storedSessionLoader) updateSessionFromStore(req *http.Request, session *sessionsapi.SessionState) error {
|
func (s *storedSessionLoader) updateSessionFromStore(req *http.Request, session *sessionsapi.SessionState) error {
|
||||||
sessionStored, err := s.store.Load(req)
|
sessionStored, err := s.store.Load(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user