Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar_network/toolkit/http.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar_network/toolkit/http.py')
-rw-r--r--sugar_network/toolkit/http.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/sugar_network/toolkit/http.py b/sugar_network/toolkit/http.py
index 2241183..f820d08 100644
--- a/sugar_network/toolkit/http.py
+++ b/sugar_network/toolkit/http.py
@@ -66,9 +66,15 @@ class Client(object):
headers = {'Accept-Language': ad.default_lang()}
if self._sugar_auth:
- uid = sugar.uid()
- headers['sugar_user'] = uid
- headers['sugar_user_signature'] = _sign(uid)
+ privkey_path = sugar.privkey_path()
+ if not exists(privkey_path):
+ _logger.warning('Sugar session was never started, '
+ 'fallback to anonymous mode')
+ self._sugar_auth = False
+ else:
+ uid = sugar.uid()
+ headers['sugar_user'] = uid
+ headers['sugar_user_signature'] = _sign(privkey_path, uid)
self._session = Session(headers=headers, verify=verify, prefetch=False)
@@ -292,8 +298,8 @@ class Client(object):
return json.loads(response.content)
-def _sign(data):
- key = DSA.load_key(sugar.privkey_path())
+def _sign(privkey_path, data):
+ key = DSA.load_key(privkey_path)
return key.sign_asn1(hashlib.sha1(data).digest()).encode('hex')