Kalliope PBX登录和通信模块

kalliopepbx的Python项目详细描述


Python-KalliopePBX身份验证模块

Kalliope PBX服务器的通信模块
(有关详细信息,请参见Kalliope PBX)。在

重要的

实验性
只在本地进行测试,而不是针对适当的Kalliope服务器进行的
不是Kalliope或Netresult S.r.l.的官方项目。

安装

要使用pipPypi安装:

pip install kalliopepbx

或者直接从git源安装:

^{pr2}$

要在系统范围内安装kalliopepbx,请从最后一个系统中删除--user 行并使用sudo或其他子系统作为 特权用户。在

使用示例

fromkalliopepbximportSessionendpoint="http://user:password@192.168.1.1/"conn=Session(endpoint)accounts=conn.get("/rest/account").json()print(accounts)

会议

事件尽管Kalliope服务器不支持会话对象 帮助在每个请求上重新生成所需的身份验证头。在

要创建新会话,请使用以下格式的连接字符串:

Session("scheme://user:password@host:port/tenants_domain")

其中:

  • ^{str1}$schemehttp或{}(默认值:“http”)
  • userpassword是凭据(可选)
  • host是主机名或ip地址
  • port是要连接的端口(可选)
  • ^{str1}$tenants_domain是租户的域(默认值:“default”)。在

如果没有指定方案,则使用默认方案(http),但是 请注意,您仍然需要将双斜杠放在 符合RFC 1808的url。在

用户名和密码必须同时存在或都丢失。如果你愿意的话 要稍后提供凭据,请使用Session.login。没有登录 任何请求都将在未经验证的情况下执行。在

默认租户的域是“default”。在

conn=Session("http://admin:nimda@192.168.1.1")response1=conn.get("/rest/dashboard")response2=conn.get("/rest/account")print("Req 1:",response1.request.headers["X-authenticate"])print("Req 2:",response2.request.headers["X-authenticate"])
Req 1: RestApiUsernameToken Username="admin", Domain="default", Digest="FLExUJyV4pPMr20o6e7TorEsdfZxkqvJcBNCe1nxecE=", Nonce="2dc477ac10d6c07b3fe008f636037733", Created="2020-10-30T15:33:04Z"
Req 2: RestApiUsernameToken Username="admin", Domain="default", Digest="69jCdIIXk0pT/f6CJZB9E+UacP2fnFVFMBqUuYIbGhs=", Nonce="33e79f33fbc4ac535ed3183dfac97de6", Created="2020-10-30T15:33:08Z"

授权

kalliopepbx.Auth是一个独立的类,可用于 生成给定凭据和salt值的头。在

fromkalliopepbximportAuthsalt=fetch_salt_value(...)#  5ebe2294ecd0e0f08eab7690d2a6ee69auth=Auth("admin","nimda","default",salt)print(auth.xauth())
{'X-authenticate':'RestApiUsernameToken Username="admin", Domain="default", Digest="8V5nQKp9GoCvhv5J+s3REprWXvH0txZJwmZdaKoJAyQ=", Nonce="62f230121d1d99cef5c8cb83c96cf6c4", Created="2020-10-30T15:33:12Z"'}

方法Auth.xauth返回一个带有新生成标记的dict 为下一代重新设置自己。在

必须在创建 对象或在瞬间设置它(auth.salt = value)。在

出于测试目的,重置阶段可以用 reset=False。为了快速检查值,还可以打印 Auth对象实例,即print(auth)

X-authenticate: RestApiUsernameToken Username="admin", Domain="default", Digest="8V5nQKp9GoCvhv5J+s3REprWXvH0txZJwmZdaKoJAyQ=", Nonce="62f230121d1d99cef5c8cb83c96cf6c4", Created="2020-10-30T15:33:12Z"

卡莱赫3>

requests.AuthBase实现由kalliopepbx.Session用于 更新请求的标头。它是在登录时由kalliopepbx.Session创建的 本身。salt值将自动从服务器获取。在

许可证

本软件发布于 LGPLv3
GNU通用公共许可证第3版,2007年6月29日。在

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

推荐PyPI第三方库


热门话题
java Leetcode移动零:我的bug在哪里?   Selenium WebDriver中隐式等待()中的java错误   macos如何从Java中访问资源文件。在OS X和Java 7上运行的应用程序包?   java setSelectionBackGround()不在jTable中设置颜色   java使用URL加载图像   JAVA在不删除空格的情况下拆分   java在Android上将Google+配置文件图片从Uri转换为位图   java我无法访问JSP页面中的modelmap值   javaaspose数据集。readXml生成更复杂的结构   java是否有任何方法可以查询用户是否存在于基于SAML的身份提供程序中?   java如何在每次添加文本时在listview一侧永久添加标题?   JavaJSP:我能呈现出比当前编写器输出更高的stringwriter吗?   JDK 8中的java Javadoc:无效的“不允许自关闭元素”