Anomalie #28825
[CONTOURNEMENT] perte de connexion toutes les 5 minutes (Web et client synchro)
0%
Description
Bonjour,
Suite à une mise à jour d'un scribe 2.5.2->2.6, et bascule d'owncloud à nextcloud (après migrations successives manuelles pour conserver les partages)
Nous constatons une déconnexion intempestive que ce soit via le navigateur (une erreur a été rencontrée, décompte puis mire eolesso) ou via le client desktop (il faut dans ce cas explicitement se déconnecter pour pouvoir se reconnecter) - En revanche le client android n'est pas impacté (je suppose qu'il se reconnecte tout seul).
Le problème a été retracé jusqu'a la fonction checkTokenCredentials dans [NEXTCLOUD_WWWDIR]/lib/private/User/Session.php et en particulier en remplacant ligne 676 le timer de 5 min à quelque chose de plus large comme 24h, la problématique est contournée.
Néanmoins la question reste entière : pourquoi les vérifications faites par cette fonction aboutissent à la notion de session en cours invalide (entrainant la déconnexion intempestive) ?
Merci,
PC
Historique
#1 Mis à jour par Arnaud FORNEROT il y a plus de 4 ans
- Statut changé de Nouveau à Résolu
- Version cible mis à Envole 6.11
Patch réalisé sur le dépot de DEV
#2 Mis à jour par Pierre CADEOT il y a plus de 4 ans
Bonjour Arnaud,
Je ne mettrai pas à "résolu" : le changement de fréquence du checkTokenCredentials est un pis allé pour éviter d'etre déco toutes les 5min, mais on ne devrait pas être déco lors de ce check : c'est cette anomalie qui reste à résoudre il me semble,
Pierre
#3 Mis à jour par Pierre CADEOT il y a plus de 4 ans
je reviens sur le hack communiqué début septembre, qui consistait à passer le délai de controle de validité du mot de passe de 5min à 24h ;
en fin de compte se reconnecter toutes les 24h n'était pas une solution pour nos usagers du client lourd de synchro ;
je suis donc revenu à "toutes les 5min", mais cette fois en neutralisant la partie qui controle la validité du mot de passe ;
ceci basé sur l'issue consultable à cette adresse : https://github.com/nextcloud/server/issues/11113 LDAP authentication assumes passwords are reusable
en pratique dans lib/private/User/Session.php on remet 5 au lieu de 1440 (cf annulation des modifs de ce ticket) et on rajoute les 2 lignes ci dessous :
> --- lib/private/User/Session.php~ 2018-09-07 23:14:26.867485000 +0000 > +++ lib/private/User/Session.php 2018-09-07 22:51:03.908411000 +0000 > @@ -690,12 +690,14 @@ > return true; > } > > + AJOUT ICI if (false) { /* Kludge around LDAP with non-reusable passwords */ > if ($this->manager->checkPassword($dbToken->getLoginName(), $pwd) === false > || (!is_null($this->activeUser) && !$this->activeUser->isEnabled())) { > $this->tokenProvider->invalidateToken($token); > // Password has changed or user was disabled -> log user out > return false; > } > + AJOUT ICI } > $dbToken->setLastCheck($now); > return true; > }
depuis une dizaine de jours après mise en prod, je ne rencontre plus le problème de déconnexion ;
#4 Mis à jour par Arnaud FORNEROT il y a plus de 4 ans
- Statut changé de Résolu à Fermé