Pyro - 如何在名称服务器上使用HMac密钥? CommunicationError:hmac key config不对称

时间:2015-12-01 05:55:46

标签: python pyro

我正在使用Pyro 4.34,Python 2.7和Jython 2.7。

名称服务器即可。我可以像这样开始使用名称服务器:

pyro4-ns --key abc

Pyro Server 。文档说明我可以在Pyro守护程序上设置_pyroHmacKey属性,但locateNS方法失败并带有NamingError cannot find Name Server

查看locateNS的API,我发现它有一个名为hmac_key的arg。如果我摆脱了_pryoHmacKey并使用了那个arg,那么Pyro Server可以正常启动。

name_server = Pyro4.locateNS(hmac_key='abc')

客户端即可。文档说明我可以在_pyroHmacKey上设置proxy属性:

proxy = Pyro4.Proxy("PYRONAME:test")
proxy._pyroHmacKey = 'abc'

然而,第一次调用proxy上的方法失败了:

CommunicationError: cannot connect: hmac key config not symmetric

1 个答案:

答案 0 :(得分:0)

在Pyro Server代码中,我从Pyro守护程序中删除了_pyroHmacKey attribtue,因为我认为只需要在Pyro4.locateNS()的参数中指定它。一旦我重新加入,一切正常。

看起来hmac键需要在两个位置都能发生,才能使一切工作。

name_server = Pyro4.locateNS(hmac_key='abc')
daemon = Pyro4.daemon()
daemon._pyroHmacKey = 'abc'
uri = daemon.register(Foo())
ns.register('test, uri)
daemon.requestLoop()