02-25-2021 04:14 AM
Bonjour,
Mon environnement : Nuxeo 10.10 Windows 10 Python 3.9
J'essaye actuellement de créer un POC pour la connexion SSO avant de la mettre en place sur la branche dev, je rencontre toutefois quelques problèmes. J'utilise l'API Python de Nuxeo.
**Mon code : **
auth1 = PortalSSOAuth("Administrator", "nuxeo5secretkey", "MD5")
auth2 = ("Administrator", "Administrator")
nuxeo = Nuxeo(auth=auth1)
print(nuxeo.directories.get('/'))
Erreur : AttributeError: 'NoneType' object has no attribute 'update'
Ce que j'ai remarqué : En regardant dans le code source je remarque cette méthode :
def getattr(object, name, default=None): # known special case of getattr
"""
getattr(object, name[, default]) -> value
Get a named attribute from an object; getattr(x, 'y') is equivalent to x.y.
When a default argument is given, it is returned when the attribute doesn't
exist; without it, an exception is raised in that case.
"""
pass
qui ne renvoie rien, c'est de là que vien le NoneType. Cette méthode est utilisée dans :
def get_digest_hash(algorithm):
# type: (Text) -> Optional[HASH]
# Retrieve the hashlib function for the given digest, None if not found
print(algorithm)
print(hashlib)
func = getattr(hashlib, algorithm, None)
print(func)
return func() if func else None
elle même utilisée dans
def make_portal_sso_token(timestamp, random, secret, username, digest_algorithm="md5"):
# type: (int, Text, Text, Text, Optional[Text]) -> Text
"""Generate a token for SSO with Portals."""
clear_token = ":".join([str(timestamp), random, secret, username])
digester = get_digest_hash(digest_algorithm)
print(digester)
digester.update(get_bytes(clear_token))
hashed_token = digester.digest()
return get_text(b64encode(hashed_token))
NB : Les print viennent de moi
Question Le problème vient-il d'une mauvaise configuration de ma part ou vraiment de la méthode citée ci-dessus ?
02-25-2021 04:26 AM
Bonjour Hugo,
Vous avez raison dans votre analyse, joli travail 🙂
Le problème vient du fait que vous avez mis l'algorithme en majuscules. Un cas auquel nous n'avons pas pensé et qui sera corrigé dans une prochaine release. En attendant, je vous conseille d'uiliser ce code, en utilisant au maximum les valeurs par défaut :
auth1 = PortalSSOAuth("Administrator", "nuxeo5secretkey")
nuxeo = Nuxeo(host=host, auth=auth1)
Le dernier argument a été mis en place pour le rare cas où Portal SSO serait configuré côté serveur pour utliser un algorithme différent de MD5
.
02-25-2021 04:26 AM
Bonjour Hugo,
Vous avez raison dans votre analyse, joli travail 🙂
Le problème vient du fait que vous avez mis l'algorithme en majuscules. Un cas auquel nous n'avons pas pensé et qui sera corrigé dans une prochaine release. En attendant, je vous conseille d'uiliser ce code, en utilisant au maximum les valeurs par défaut :
auth1 = PortalSSOAuth("Administrator", "nuxeo5secretkey")
nuxeo = Nuxeo(host=host, auth=auth1)
Le dernier argument a été mis en place pour le rare cas où Portal SSO serait configuré côté serveur pour utliser un algorithme différent de MD5
.
02-25-2021 04:33 AM
D'accord ! merci de la réponse rapide !
02-25-2021 05:30 AM
JE n'arrive toujours pas à trouver de solution à cette 401, j'ai fait et refait la configuration comme indiqué sur la page
02-25-2021 05:59 AM
La page https
02-25-2021 07:12 AM
Super tout marche parfaitement ! j'avais oublié la bonne url ^^
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.