没有项目描述

cernrequests的Python项目详细描述


Build Status

CERN请求

启用使用requests而不必配置cern根证书。

灵感来自certifirequests-kerberoscern-sso-python

根证书束是从linuxsoft cern page复制的,也可以通过从cafiles.cern.ch/cafiles下载cern网格证书颁发机构文件手动创建。

安装

需要Python 2.7Python 3.4+

pip install cernrequests

先决条件

请求a Grid User Certificate并转换为公钥和私钥:

mkdir -p ~/private
openssl pkcs12 -clcerts -nokeys -in myCertificate.p12 -out ~/private/usercert.pem
openssl pkcs12 -nocerts -in myCertificate.p12 -out ~/private/userkey.tmp.pem
openssl rsa -in ~/private/userkey.tmp.pem -out ~/private/userkey.pem

证书必须是passwordless

用法

示例

importcernrequestsurl="https://<your-cern-website>"response=cernrequests.get(url)

cookies示例

如果要访问需要CERN单点登录Cookie的网站,可以执行以下操作:

importcernrequestsurl="https://<your-cern-website>"cookies=cernrequests.get_sso_cookies(url)response=cernrequests.get(url,cookies=cookies)

替代用法

如果您想直接使用requests而不使用cern包装,您可以通过执行以下操作获得完全相同的功能:

importrequestsfromcernrequestsimportcertsurl="https://<your-cern-website>"cert=certs.default_user_certificate_paths()ca_bundle=certs.where()response=requests.get(url,cert=cert,verify=ca_bundle)

配置

默认的用户证书路径是用于回退的第一个~\private\~\.globus\。默认的public密钥文件名是usercert.pem,默认的private密钥文件名是userkey.pem

可以通过设置CERN_CERTIFICATE_PATH环境变量来配置默认网格用户证书路径。

例如:

exportCERN_CERTIFICATE_PATH=${HOME}/my_custom_folder

这仍然假设您的文件名是usercert.pemuserkey.pem。 在.bashrc中写下这一行,使配置持久化

或者,您也可以直接在代码中指定路径:

importcernrequestsurl="https://<your-cern-website>"cert="my/custom/path/cert.pem"# Public key pathkey="my/custom/path/key.pem"# Private key pathcernrequests.get(url,cert=(cert,key))

这样,您甚至可以使用自定义名称,如cert.pemkey.pem

参考文献

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java爬虫获取外部网站搜索结果   java Bluestack未连接到eclipse   java如何从ConstraintViolationException Hibernamte获取数据库字段名   HttpResponse HttpResponse=httpClient引发java运行时错误。执行(httpPost);   Jama中矩阵的java点积和叉积   java有什么方法可以唯一地识别可扩展设备吗?   java我需要用*来写我的名字,但我不断遇到一个错误,我对编码很陌生   java变量是在内部类中访问的。需要被宣布为最终决定。但我不想宣布最终结果   java如何缩短base64图像字符串,Android?   JavaSpringMVC:计划方法不自动触发   图形学习Java 2D API的好资源是什么?   如何在java中对方法进行排队   java JavaFX多行   java Selenium无法在[链接]上找到基于CSS元素的密码字段元素http://www.cartasi.it/gtwpages/index.jsp   Java中的equals()和hashCode()契约   软删除情况下的java Hibernate二级缓存   java为什么这段代码要两次调用这些方法?