Stage 1 conversion to JSON for storing Credentials.
Reviewed in http://codereview.appspot.com/4972065/
diff --git a/oauth2client/multistore_file.py b/oauth2client/multistore_file.py
index 8841194..e3e3f6d 100644
--- a/oauth2client/multistore_file.py
+++ b/oauth2client/multistore_file.py
@@ -21,7 +21,9 @@
'userAgent': '<user agent>',
'scope': '<scope>'
},
- 'credential': '<base64 encoding of pickeled Credential object>'
+ 'credential': {
+ # JSON serialized Credentials.
+ }
}
]
}
@@ -47,6 +49,7 @@
import json as simplejson
from client import Storage as BaseStorage
+from client import Credentials
logger = logging.getLogger(__name__)
@@ -295,7 +298,8 @@
user_agent = raw_key['userAgent']
scope = raw_key['scope']
key = (client_id, user_agent, scope)
- credential = pickle.loads(base64.b64decode(cred_entry['credential']))
+ credential = None
+ credential = Credentials.new_from_json(simplejson.dumps(cred_entry['credential']))
return (key, credential)
def _write(self):
@@ -312,7 +316,7 @@
'userAgent': cred_key[1],
'scope': cred_key[2]
}
- raw_cred = base64.b64encode(pickle.dumps(cred))
+ raw_cred = simplejson.loads(cred.to_json())
raw_creds.append({'key': raw_key, 'credential': raw_cred})
self._locked_json_write(raw_data)
@@ -330,6 +334,7 @@
The credential specified or None if not present
"""
key = (client_id, user_agent, scope)
+
return self._data.get(key, None)
def _update_credential(self, cred, scope):