outpost/ldap: don't cleanup user info as it is overwritten on bind
closes #1651 Signed-off-by: Jens Langhammer <jens.langhammer@beryju.org>
This commit is contained in:
parent
0abb1f94a4
commit
ed6659a46d
|
@ -1,32 +0,0 @@
|
||||||
package ldap
|
|
||||||
|
|
||||||
import (
|
|
||||||
"net"
|
|
||||||
"time"
|
|
||||||
)
|
|
||||||
|
|
||||||
func (ls *LDAPServer) Close(boundDN string, conn net.Conn) error {
|
|
||||||
for _, p := range ls.providers {
|
|
||||||
p.delayDeleteUserInfo(boundDN)
|
|
||||||
}
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func (pi *ProviderInstance) delayDeleteUserInfo(dn string) {
|
|
||||||
ticker := time.NewTicker(30 * time.Second)
|
|
||||||
quit := make(chan struct{})
|
|
||||||
go func() {
|
|
||||||
for {
|
|
||||||
select {
|
|
||||||
case <-ticker.C:
|
|
||||||
pi.boundUsersMutex.Lock()
|
|
||||||
delete(pi.boundUsers, dn)
|
|
||||||
pi.boundUsersMutex.Unlock()
|
|
||||||
close(quit)
|
|
||||||
case <-quit:
|
|
||||||
ticker.Stop()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}()
|
|
||||||
}
|
|
|
@ -40,7 +40,6 @@ func NewServer(ac *ak.APIController) *LDAPServer {
|
||||||
ls.defaultCert = &defaultCert
|
ls.defaultCert = &defaultCert
|
||||||
s.BindFunc("", ls)
|
s.BindFunc("", ls)
|
||||||
s.SearchFunc("", ls)
|
s.SearchFunc("", ls)
|
||||||
s.CloseFunc("", ls)
|
|
||||||
return ls
|
return ls
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Reference in New Issue