Rename field, add comment

This commit is contained in:
Till Faelligen 2022-03-01 16:15:26 +01:00
parent b2ecb475b4
commit 5b97e427ea

View file

@ -73,10 +73,13 @@ func init() {
// It shouldn't be passed by value because it contains a mutex. // It shouldn't be passed by value because it contains a mutex.
type sessionsDict struct { type sessionsDict struct {
sync.RWMutex sync.RWMutex
sessions map[string][]authtypes.LoginType sessions map[string][]authtypes.LoginType
params map[string]registerRequest params map[string]registerRequest
timer map[string]*time.Timer timer map[string]*time.Timer
sessionToDevice map[string]string // deleteSessionToDeviceID protects requests to DELETE /devices/{deviceID} from being abused.
// If a UIA session is started by trying to delete device1, and then UIA is completed by deleting device2,
// the delete request will fail for device2 since the UIA was initiated by trying to delete device1.
deleteSessionToDeviceID map[string]string
} }
// defaultTimeout is the timeout used to clean up sessions // defaultTimeout is the timeout used to clean up sessions
@ -116,7 +119,7 @@ func (d *sessionsDict) deleteSession(sessionID string) {
defer d.Unlock() defer d.Unlock()
delete(d.params, sessionID) delete(d.params, sessionID)
delete(d.sessions, sessionID) delete(d.sessions, sessionID)
delete(d.sessionToDevice, sessionID) delete(d.deleteSessionToDeviceID, sessionID)
// stop the timer, e.g. because the registration was completed // stop the timer, e.g. because the registration was completed
if t, ok := d.timer[sessionID]; ok { if t, ok := d.timer[sessionID]; ok {
if !t.Stop() { if !t.Stop() {
@ -131,10 +134,10 @@ func (d *sessionsDict) deleteSession(sessionID string) {
func newSessionsDict() *sessionsDict { func newSessionsDict() *sessionsDict {
return &sessionsDict{ return &sessionsDict{
sessions: make(map[string][]authtypes.LoginType), sessions: make(map[string][]authtypes.LoginType),
params: make(map[string]registerRequest), params: make(map[string]registerRequest),
timer: make(map[string]*time.Timer), timer: make(map[string]*time.Timer),
sessionToDevice: make(map[string]string), deleteSessionToDeviceID: make(map[string]string),
} }
} }
@ -172,13 +175,13 @@ func (d *sessionsDict) addDeviceToDelete(sessionID, deviceID string) {
d.startTimer(defaultTimeOut, sessionID) d.startTimer(defaultTimeOut, sessionID)
d.Lock() d.Lock()
defer d.Unlock() defer d.Unlock()
d.sessionToDevice[sessionID] = deviceID d.deleteSessionToDeviceID[sessionID] = deviceID
} }
func (d *sessionsDict) getDeviceToDelete(sessionID string) (string, bool) { func (d *sessionsDict) getDeviceToDelete(sessionID string) (string, bool) {
d.RLock() d.RLock()
defer d.RUnlock() defer d.RUnlock()
deviceID, ok := d.sessionToDevice[sessionID] deviceID, ok := d.deleteSessionToDeviceID[sessionID]
return deviceID, ok return deviceID, ok
} }