projects
/
invirt/packages/invirt-vnc-server.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Another silly error.
[invirt/packages/invirt-vnc-server.git]
/
python
/
vnc
/
extauth.py
diff --git
a/python/vnc/extauth.py
b/python/vnc/extauth.py
index
b7351a3
..
be19570
100644
(file)
--- a/
python/vnc/extauth.py
+++ b/
python/vnc/extauth.py
@@
-20,10
+20,7
@@
import socket
import time
def getTokenKey():
import time
def getTokenKey():
- token_key = file('/etc/invirt/secrets/vnc-key').read().strip()
- while True:
- yield token_key
-getTokenKey = getTokenKey().next
+ return file('/etc/invirt/vnc/token-key').read().strip()
def getPort(name, auth_data):
import get_port
def getPort(name, auth_data):
import get_port
@@
-68,12
+65,11
@@
class VNCAuth(protocol.Protocol):
def validateToken(self, token):
self.auth_error = "Invalid token"
try:
def validateToken(self, token):
self.auth_error = "Invalid token"
try:
- token = base64.urlsafe_b64decode(token)
- token = cPickle.loads(token)
+ (pickled_data, digest) = map(base64.urlsafe_b64decode, token.split("."))
m = hmac.new(getTokenKey(), digestmod=sha)
m = hmac.new(getTokenKey(), digestmod=sha)
- m.update(token['data'])
- if (m.digest() == token['digest']):
- data = cPickle.loads(token['data'])
+ m.update(pickled_data)
+ if (m.digest() == digest):
+ data = cPickle.loads(pickled_data)
expires = data["expires"]
if (time.time() < expires):
self.auth = data["user"]
expires = data["expires"]
if (time.time() < expires):
self.auth = data["user"]
@@
-82,7
+78,7
@@
class VNCAuth(protocol.Protocol):
self.auth_data = data
else:
self.auth_error = "Token has expired; please try logging in again"
self.auth_data = data
else:
self.auth_error = "Token has expired; please try logging in again"
- except (TypeError, cPickle.UnpicklingError):
+ except (TypeError, ValueError, cPickle.UnpicklingError):
self.auth = None
print sys.exc_info()
self.auth = None
print sys.exc_info()