Development #47013
Le support des clés publiques nues est cassé
0%
Description
Sep 25 10:58:46 gavotte-pp authentic2[24524]: 176.159.32.89 eeadmin (d7fc71) 57cdef6c ERROR Internal Server Error: /idp/saml2/sso Traceback (most recent call last): File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 1065, in _escape_cdata if "&" in text: TypeError: a bytes-like object is required, not 'str' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/usr/lib/python3/dist-packages/django/core/handlers/exception.py", line 41, in inner response = get_response(request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 187, in _get_response response = self.process_exception_by_middleware(e, request) File "/usr/lib/python3/dist-packages/django/core/handlers/base.py", line 185, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) File "/usr/lib/python3.5/contextlib.py", line 30, in inner return func(*args, **kwds) File "/usr/lib/python3/dist-packages/authentic2/decorators.py", line 47, in f return func(request, *args, **kwargs) File "/usr/lib/python3/dist-packages/authentic2/decorators.py", line 47, in f return func(request, *args, **kwargs) File "/usr/lib/python3/dist-packages/django/views/decorators/cache.py", line 57, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "/usr/lib/python3/dist-packages/django/views/decorators/csrf.py", line 58, in wrapped_view return view_func(*args, **kwargs) File "/usr/lib/python3/dist-packages/authentic2/idp/saml/saml2_endpoints.py", line 138, in f return func(request, *args, **kwargs) File "/usr/lib/python3/dist-packages/authentic2/idp/saml/saml2_endpoints.py", line 488, in sso server = create_server(request) File "/usr/lib/python3/dist-packages/authentic2/idp/saml/saml2_endpoints.py", line 1551, in create_server __cached_server = create_saml2_server(request, idp_map=metadata_map, options=options) File "/usr/lib/python3/dist-packages/authentic2/saml/common.py", line 123, in create_saml2_server options=options), File "/usr/lib/python3/dist-packages/authentic2/saml/common.py", line 111, in get_saml2_metadata return str(metagen) File "/usr/lib/python3/dist-packages/authentic2/saml/saml2utils.py", line 282, in __str__ etree.tostring(self.root_element())) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 1134, in tostring short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 775, in write short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 940, in _serialize_xml short_empty_elements=short_empty_elements) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 937, in _serialize_xml write(_escape_cdata(text)) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 1073, in _escape_cdata _raise_serialization_error(text) File "/usr/lib/python3.5/xml/etree/ElementTree.py", line 1056, in _raise_serialization_error "cannot serialize %r (type %s)" % (text, type(text).__name__) TypeError: cannot serialize b'1JO+v2Bx3ylci8u4JmAqr6BnAqePwu1frInXGwauwmdfsB62ald/GYlpCR0LGheais0wzttetg/zjp4a6bDUzmW8nKmniF5P3QeSAaoVLfS5x/oFtSDBcPv5Sy0XxnIf+wd9ErdxMB2GX02vKuohBo8pvV7krflyhK+S3ulALro9b3ThS0f03Js/S9TzXZi+sRdyYXyANQsIlQCy3xBaumfvzVVCAaPMMA2/THW7hSa4y6OZ7lPv2GNnhvvlfeTPuA4kpfleQiNEHdsxD0eflGMJRqNVF1LxwRhwAKCALd5eLTE2We5szjTzALmL1K8BNVqjXMNj0fV+UQKI2DICRw==' (type bytes)
Note: Installation à partir du paquet Debian pour stretch (2.67-1~eob90+1) avec application du patch de #46984. Python 3.5.3.
Fichiers
Révisions associées
Historique
Mis à jour par Benjamin Renard il y a plus de 3 ans
Benjamin Dauvergne a écrit :
tu peux vérifier que ta clé privé et ta clé publique ne sont pas des chaînes "bytes" dans tes settings ?
Mes clés sont définies via le fichier authentic.conf et donc via l'environnement.
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Sujet changé de saml: erreur TypeError: cannot serialize dans get_saml2_metadata() à Le support des clés publiques nues est cassé
- Assigné à
Benjamin Dauvergnesupprimé
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Fichier 0001-misc-reuse-and-factorize-conversion-of-int-to-base64.patch 0001-misc-reuse-and-factorize-conversion-of-int-to-base64.patch ajouté
- Tracker changé de Support à Development
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
C'est l'utilisation d'une clé publique nue (qu'on ne fait jamais de notre coté ni dans les tests ni en prod, d'où le fait qu'on ait pas vu le souci) qui a posé problème, je factorise la génération du base64 dans saml2utils avec x509utils.
Mis à jour par Benjamin Renard il y a plus de 3 ans
Benjamin Dauvergne a écrit :
C'est l'utilisation d'une clé publique nue (qu'on ne fait jamais de notre coté ni dans les tests ni en prod, d'où le fait qu'on ait pas vu le souci) qui a posé problème, je factorise la génération du base64 dans saml2utils avec x509utils.
Ok, comme vu ensemble, ça fonctionne à présent mais ça déclenche une erreur (non-bloquante) côté Lasso. Après une conversion de ma clé publique en un certificat, plus de souci. Merci.
Mis à jour par Paul Marillonnet il y a plus de 3 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Benjamin Dauvergne il y a plus de 3 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit 85c85b2595f8a07030dc7c67ea1f770690c40500 Author: Benjamin Dauvergne <bdauvergne@entrouvert.com> Date: Fri Sep 25 12:00:10 2020 +0200 misc: reuse and factorize conversion of int to base64 (#47013)
Mis à jour par Frédéric Péters il y a plus de 3 ans
- Statut changé de Résolu (à déployer) à Solution déployée
misc: reuse and factorize conversion of int to base64 (#47013)