Bug #23001
broken setOriginalXmlnode
0%
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
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.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Statut changé de Résolu (à déployer) à Nouveau
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.
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
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.
Mis à jour par Benjamin Dauvergne il y a environ 6 ans
- Statut changé de Nouveau à Rejeté
- Assigné à mis à Benjamin Dauvergne