Développement #48947
ne pas logguer en erreur "The request's session was deleted before the request completed..."
0%
Description
Mais c'est SuspiciousOperation générique, pas sûr de pouvoir cibler ça :
try: request.session.save() except UpdateError: raise SuspiciousOperation( "The request's session was deleted before the " "request completed. The user may have logged " "out in a concurrent request, for example." )
History
Updated by Benjamin Dauvergne over 4 years ago
Je ne le rangerai pas avec les autres, parce que basiquement on fait un truc tordu, pour le dernier évènement de ce genre les logs pour l'IP autour de cette horaire sur passerelle donne :
bdauvergne@cutm-ea-dev-publik:/var/log/nginx$ sudo zgrep 78.121.56.161 *.log.1 | grep 2020:11:42 | grep -v static | grep passerelle passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:28 +0100] "GET /manage/menu.json?callback=jQuery110208982466491489354_1606473748153&_=1606473748154 HTTP/1.1" 302 0 "https://agents-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.065 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:28 +0100] "GET /login/?next=/manage/menu.json%3Fcallback%3DjQuery110208982466491489354_1606473748153%26_%3D1606473748154 HTTP/1.1" 302 0 "https://agents-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.015 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:28 +0100] "GET /accounts/mellon/login/?next=/manage/menu.json%3Fcallback%3DjQuery110208982466491489354_1606473748153%26_%3D1606473748154 HTTP/1.1" 302 0 "https://agents-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.268 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:30 +0100] "GET /accounts/mellon/login/?SAMLart=AAQAAPd5cLIidzKuJ0H3c%2Bji4biThW49NjU3RTYyNTQ3QkJGOEQ5MjE2M0E%3D&RelayState=8e02e26c-cd37-40a4-8fb0-e675e8bc42ec HTTP/1.1" 499 0 "https://agents-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.216 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:30 +0100] "GET /manage/menu.json?callback=jQuery110205691467957570429_1606473750472&_=1606473750473 HTTP/1.1" 302 0 "https://demarches-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.155 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:31 +0100] "GET /login/?next=/manage/menu.json%3Fcallback%3DjQuery110205691467957570429_1606473750472%26_%3D1606473750473 HTTP/1.1" 302 0 "https://demarches-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [0.119 ms] passerelle-access.log.1:78.121.56.161 - - [27/Nov/2020:11:42:32 +0100] "GET /accounts/mellon/login/?next=/manage/menu.json%3Fcallback%3DjQuery110205691467957570429_1606473750472%26_%3D1606473750473 HTTP/1.1" 400 77081 "https://demarches-moncompte.cutm-ea-dev-publik.nfrance.com/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36" "passerelle-moncompte.cutm-ea-dev-publik.nfrance.com" [1.010 ms]
On fait deux accès à menu.json dans le même navigateur à peu d'intervalle, le premier accès provoque un SSO sur passerelle, au cours du SSO une nouvelle session est créée et la session courante "flushé", lors du deuxième accès ça provoque un appel à /accounts/mellon/login/ avec le mauvais cookie de session et il se voit enlever sa session sous ses pieds.
Coté appelé, le problème est dans mellon il faut juste arrêter d'utiliser la session pour sauvegarder les informations d'état, ce serait plus stable avec des cookies; au retour de SSO si finalement une session authentifiée est déjà ouverte (il y a eu un login concurrent) il faut ignorer la réponse et rediriger directement sur l'URL d'origine, évitons de créer des sessions en cascade.
Coté appelant soit on a deux pages de portail-agent/backoffice ouvertes rapidement dans deux onglets différents soit un truc déconne dans les appels ajax aux menu.json.
Updated by Frédéric Péters over 4 years ago
Mais ça arrive aussi en front, sans rapport menu.json. (exemple en commentaire privé).