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 ?