import time
import base64
from invirt.vnc import getTokenKey
+from invirt.config import structs as config
def getAuthToken(username, machine, lifetime=5*60):
data = {}
data['user'] = username
data['machine'] = machine
data['expires'] = time.time() + lifetime
+ data['connect_host'] = config.web.hostname
+ try:
+ data['connect_port'] = 10003 + [h.hostname for h in
+ config.hosts].index(os.uname()[1])
+ except:
+ data['connect_port'] = 5900
pickled_data = cPickle.dumps(data)
m = hmac.new(getTokenKey(), digestmod=sha)
m.update(pickled_data)
- token = {'data': pickled_data, 'digest': m.digest()}
- token = cPickle.dumps(token)
- token = base64.urlsafe_b64encode(token)
+ token = ".".join(map(base64.urlsafe_b64encode, (pickled_data, m.digest())))
return token
def main():