Development #72613
Problème avec plusieurs Set-cookie dans le code conversion Quixote et Django
Début:
19 décembre 2022
Echéance:
% réalisé:
0%
Temps estimé:
Patch proposed:
Oui
Planning:
Non
Description
Au niveau de la conversion quixote Django on fait générer par Quixote les headers Set-Cookie par Quixote qu'on pose directement sur la réponse Django:
for name, value in self.quixote_response.generate_headers(): if name in ('Connection', 'Content-Length'): continue response[name] = value
Sauf qu'il peut y avoir plusieurs set-cookie mais que la classe HttpResponse de Django ne gère qu'une valeur possible pour chaque nom d'entête HTTP. C'est géré en Django en séparant la génération des entêtes classiques des entêtes Set-Cookie :
# django/core/handlers/wsgi.py response_headers = [ *response.items(), *(('Set-Cookie', c.output(header='')) for c in response.cookies.values()), ]
Il faudrait vraisemblablement convertir les cookies quixote en cookies Django pour ne pas avoir ce souci (problème vu avec le code pour le SSO passif qui essaie de poser plusieurs cookies en même temps).
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Benjamin Dauvergne il y a plus d'un an
- Fichier 0001-misc-let-django-generate-set-cookies-headers-72613.patch 0001-misc-let-django-generate-set-cookies-headers-72613.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
Mis à jour par Frédéric Péters il y a plus d'un an
- Statut changé de Solution proposée à Résolu (à déployer)
commit 2fcdde657a7505f0bf81ba60836e5f010afbd568 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Mon Dec 19 19:07:06 2022 +0100 misc: let django generate set-cookies headers (#72613) Django's HttpResponse cannot hold more than one value for an HTTP headers, so if multiple Set-Cookie are produced by a Quixote HttpResponse the first set-cookie headers will be overwritten by the last one.
Mis à jour par Frédéric Péters il y a plus d'un an
- Lié à Development #67090: saml: lier la session en cours à celle de l'IdP ajouté
Mis à jour par Transition automatique il y a plus d'un an
- Statut changé de Résolu (à déployer) à Solution déployée
misc: let django generate set-cookies headers (#72613)
Django's HttpResponse cannot hold more than one value for an HTTP
headers, so if multiple Set-Cookie are produced by a Quixote
HttpResponse the first set-cookie headers will be overwritten by the
last one.