具有CAS认证的Python RESTful客户端
我正在尝试创建一个Python库,用来和我们的RESTful API进行交互,但它使用CAS进行客户端认证,我找不到合适的现成库。目前我找到了一些链接,但不确定这些库是给客户端用的,还是给使用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
我还尝试使用caslib,但它没有成功:
>>> import caslib
>>> srv = caslib.CASServer('https://my.cas/auth')
>>> svc = caslib.CASService('https://my.service/foo')
>>> caslib.login_to_cas_service(srv.login(svc),'user@example.com','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 ©: line 97, column 26
嗯,上面的错误似乎出在我们的标记上(或者是caslib使用的验证器)。
再编辑一下:在安装了Python的lxml库后,这个错误就消失了。备用解析器也没有用。
3 个回答
-1
也许可以参考一下官方的Python示例,地址是:https://wiki.jasig.org/display/casum/restful+api
0
十一年后,现在至少有两个Python的CAS库,并且有Flask的示例可以参考:
python-cas - 看起来更新得比较频繁
Flask-CAS - 这个GitHub的库已经不见了
我个人还没有把这些弄好,所以你可能会有不同的体验。
2
你可能需要自己动手解决这个问题,要么修改一下Python的REST客户端,让它支持CAS,要么从头开始自己写一个。我建议可以在httplib2的基础上进行开发。