2010-07-13 4 views
1

J'essaye de construire une bibliothèque python pour interagir avec notre API RESTful, mais elle utilise CAS pour l'authentification du client, et je n'ai pas été capable de trouver de bonnes bibliothèques existantes pour cela. Jusqu'à présent, j'ai trouvé les liens suivants, mais je ne suis pas sûr qu'ils soient destinés à être utilisés dans des clients ou par un site Web qui utilise CAS lui-même. Quelqu'un a-t-il des conseils pour une bonne bibliothèque à utiliser et un bon moyen de structurer mon code pour interagir avec lui?Python RESTful client avec l'authentification CAS

https://wiki.jasig.org/download/attachments/28213515/pycas.py.txt

https://sp.princeton.edu/oit/sdp/CAS/Wiki%20Pages/Python.aspx

http://github.com/benoitc/restkit/

http://morethanseven.net/2009/02/18/python-rest-client.html

Je viens aussi essayé d'utiliser caslib, mais qui ne fonctionne pas:

>>> import caslib 
>>> srv = caslib.CASServer('https://my.cas/auth') 
>>> svc = caslib.CASService('https://my.service/foo') 
>>> caslib.login_to_cas_service(srv.login(svc),'[email protected]','password') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "caslib/cas_dance.py", line 250, in login_to_cas_service 
    raise CASLoginError('Could not parse the document at %s: %s' % (login_fh.url, errors)) 
caslib.cas_dance.CASLoginError: Could not parse the document at https://my.cas/auth/login?service=https%3A%2F%2Fmy.service%2Ffoo: undefined entity &copy;: line 97, column 26 

Hmm, l'erreur ci-dessus semble être dans notre balisage (ou le validateur que caslib utilise.)

Modifier à nouveau: L'échec est supprimé après l'installation de la bibliothèque lxml pour python. L'analyseur de repli n'a pas fonctionné aussi bien.

Répondre

2

Vous pourriez avoir à vous rouler propre solution, soit en modifiant le client reste de python pour soutenir CAS ou construire quelque chose à partir de zéro (je recommande au-dessus de httplib2.)

+0

Espérons que cela ne viendra pas à cela, mais merci. Je vais continuer à regarder dedans. – Daenyth