用于Dovecot身份验证协议v1.1的客户端库
dovecotauth的Python项目详细描述
Dovecot Authentication Protocol v1.1的客户端。
为什么?
对于运行在我的 服务器,尤其是openid提供程序,看起来我不得不 写一篇文章,写一个小客户来和它交谈比得到 跟帕姆说话。
我想可能有人在同一个位置,为什么不解开它呢? 从openid提供程序。
开发
要设置开发环境,请运行:
make dev
要将新版本上载到PYPI,请执行以下操作:
make release
用法
注意
此API可能会更改。
使用connect上下文管理器连接到DAP服务器。这需要一个 servicename(例如'imap')和unix域套接字的路径或 命名参数unix,或由主机名和端口组成的元组 命名参数inet中的数字。
上下文管理器返回一个Protocol对象,您可以在该对象上调用 auth方法。这采用SASL机制的名称(当前仅 支持'plain',用户名和密码,以及 附加参数可选参数,我需要记录这些参数。
返回值是一个二元组,由一个表示成功或 失败和响应的参数作为字典,或None, 表示cont响应,需要进一步的数据。
例如:
with connect('imap', unix='./auth.sock') as conn: status, flags = conn.auth('imap', username, password) if status: print("Authentication succeeded") else: print("Authentication failed or needs more data")
演示
这个库提供了两个演示,允许您测试它 独立于多佛科特本身。运行dovecotauth.py server将给出 你是一个简单的dap服务器,dovecotauth.py client给你一个 命令行客户端。不过,请注意,这两种方法都不是为了稳健, 只是为了给你足够的时间来测试。
两者共享两个标志--unix和--inet。前者允许您指定 unix域套接字路径,后者允许您指定 以address:port格式绑定/连接到。
客户端还允许您使用^{tt12}指定服务名$ flag('imap'默认情况下),与--mech标志一起使用的SASL机制 (目前只支持“plain”,因此暂时可以忽略它),并且 username,默认为USER环境变量的值。
例如:
./dovecotauth.py client --unix ./auth.sock --user user
然后将提示您输入密码。
服务器接受一个标志--htpasswd,它允许您指定路径 到要进行身份验证的htpasswd文件:
./dovecotauth.py server --unix ./auth.sock --htpasswd ./passwd