Projet

Général

Profil

Anomalie #28825

[CONTOURNEMENT] perte de connexion toutes les 5 minutes (Web et client synchro)

Ajouté par Pierre CADEOT il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
-
Version cible:
Début:
02/09/2019
Echéance:
% réalisé:

0%

Distribution:

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é

Formats disponibles : Atom PDF