Projet

Général

Profil

Development #72613

Problème avec plusieurs Set-cookie dans le code conversion Quixote et Django

Ajouté par Benjamin Dauvergne il y a plus d'un an. Mis à jour il y a plus d'un an.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
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

Lié à w.c.s. - Development #67090: saml: lier la session en cours à celle de l'IdPFermé06 juillet 2022

Actions

Révisions associées

Révision 2fcdde65 (diff)
Ajouté par Benjamin Dauvergne il y a plus d'un an

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.

Historique

#1

Mis à jour par Benjamin Dauvergne il y a plus d'un an

  • Assigné à mis à Benjamin Dauvergne
#2

Mis à jour par Benjamin Dauvergne il y a plus d'un an

#3

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.
#4

Mis à jour par Frédéric Péters il y a plus d'un an

#5

Mis à jour par Transition automatique il y a plus d'un an

  • Statut changé de Résolu (à déployer) à Solution déployée
#6

Mis à jour par Transition automatique il y a environ un an

Automatic expiration

Formats disponibles : Atom PDF