1

我正在尝试opennebula 4.8通过xmlrpc和交流python。这是代码:

import xmlrpclib
import re
import hashlib

server = 'http://10.1.7.205:2633/RPC2'
user = "oneadmin"
password = "pass"
password = hashlib.sha1(password).hexdigest()
one_auth = '{0}:{1}'.format(user, password)

def getProxy():
    return xmlrpclib.ServerProxy(server)

def getVMInfo(id):
    response = getProxy().one.vm.info(one_auth,id)
    if response[0]:
        return response[1]
    else:
        raise Exception(response[1])

-->

Exception: [VirtualMachineInfo] User couldn't be authenticated, aborting call.

我有这个来自oca 包的例子,但它不能与新版本一起使用,opennebula并且作者不再在这个项目上工作。

4

1 回答 1

0

我有一个类似的问题,虽然我使用的是 OpenNebula 4.0.1,使用 PHP。似乎以某种方式,经过身份验证的字符串中的密码不再经过哈希处理。(当我编写旧代码时,它在 OpenNebula 3.0 中使用散列密码。)您可以尝试使用 sha1 散列函数删除该行,然后再试一次。

这样看起来不太安全。另一方面,如果有人已经获取了您的代码,并且他/她/它可以继续执行 OpenNebula API 提供的任何操作,那么是否经过哈希处理应该没有太大的区别。

于 2015-01-19T06:33:59.383 回答