Projet

Général

Profil

Bug #23001

broken setOriginalXmlnode

Ajouté par Frédéric Péters il y a environ 6 ans. Mis à jour il y a environ 6 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
Catégorie:
-
Version cible:
-
Début:
05 avril 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:

Description

Right after I file #23000...

import lasso
node = lasso.Samlp2Extensions()
node.setOriginalXmlnode('''<samlp:Extensions xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:eo="https://www.entrouvert.com/"> <eo:next_url>xxx</eo:next_url> </samlp:Extensions>''' )
print node.dump()

2.5.0: <samlp:Extensions xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"> <eo:next_url xmlns:eo="https://www.entrouvert.com/">xxx</eo:next_url> </samlp:Extensions>

master: <samlp:Extensions xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"/>

Historique

#1

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Statut changé de Nouveau à Résolu (à déployer)

J'ai ça dans mon dernier commit:

commit 81fad67ad2058b65a3cfd7a84eac564f5cc8668c (origin/master, origin/HEAD)
Author: Benjamin Dauvergne <bdauvergne@entrouvert.com>
Date:   Mon Sep 11 12:07:48 2017 +0200

    saml-2.0: improve support for free content inside samlp2:Extensions (fixes #18581)

    Four new accesors:

            lasso_samlp2_extensions_get_any
            lasso_samlp2_extensions_set_any
            lasso_samlp2_extensions_get_attributes
            lasso_samlp2_extensions_set_attributes

    The two new pseudo field are fully supported in the python binding.

            node = lasso.Samlp2Extensions()
            node.any = '<test>ok</test>'
            node.attributes = {'{http://entrouvert.org/}attribute1': 'value'}
            print node.dump()

Ça ne correspond à cette implémentation, il faut que je comprenne ce qui s'est passé ici.

#2

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Statut changé de Résolu (à déployer) à Nouveau
#3

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Et donc je relis nos échanges ici et c'était connu que setOriginalXmlNode() n'a pas d'effet sur dump(), https://dev.entrouvert.org/issues/18449.

Ce n'est pas prévu pour être read-write, juste write (ça sert à conserver les signatures XML dans leur jus en fait), je n'aurai pas du exposer ça publiquement je pense.

#4

Mis à jour par Frédéric Péters il y a environ 6 ans

Le .dump() était pour l'exemple, l'extension ne se retrouve pas dans le message après le login.buildAuthnRequestMsg(), cf https://jenkins.entrouvert.org/job/wcs/3242/console

#5

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

Le changement d'implémentation introduit dans #18581 casse le comportement actuel, ici:

-static xmlNode*
-get_xmlNode(LassoNode *node, gboolean lasso_dump)
-{
-       LassoNodeClass *parent_class = NULL;
-       xmlNode *cur;
-
-       parent_class = g_type_class_peek_parent(LASSO_NODE_GET_CLASS(node));
-       cur = parent_class->get_xmlNode(node, lasso_dump);
-
-       return lasso_node_get_xmlnode_for_any_type(node, cur);
-}
-
 static void
 class_init(LassoSamlp2ExtensionsClass *klass)
 {
@@ -80,10 +82,10 @@ class_init(LassoSamlp2ExtensionsClass *klass)
        parent_class = g_type_class_peek_parent(klass);
        nclass->node_data = g_new0(LassoNodeClassData, 1);
        nclass->node_data->keep_xmlnode = TRUE;
-       nclass->get_xmlNode = get_xmlNode;
        lasso_node_class_set_nodename(nclass, "Extensions");
        lasso_node_class_set_ns(nclass, LASSO_SAML2_PROTOCOL_HREF, LASSO_SAML2_PROTOCOL_PREFIX);
        lasso_node_class_add_snippets(nclass, schema_snippets);
+       g_type_class_add_private(G_OBJECT_CLASS(klass), sizeof(LassoSamlp2ExtensionsPrivate));
 }

et donc ce sera wontfix et passage à la technique donnée dans #23002.

#6

Mis à jour par Benjamin Dauvergne il y a environ 6 ans

  • Statut changé de Nouveau à Rejeté
  • Assigné à mis à Benjamin Dauvergne

Formats disponibles : Atom PDF