diff options
| author | Kali Kaneko (leap communications) <kali@leap.se> | 2016-11-30 10:20:08 +0100 | 
|---|---|---|
| committer | Kali Kaneko (leap communications) <kali@leap.se> | 2016-11-30 10:34:20 +0100 | 
| commit | 7e7e54c5ef5a53e66e4bd0578b24bb1fc62db797 (patch) | |
| tree | 3bed438067025f6c7bb79713598b3ad959c45456 /src | |
| parent | 2d700b6785d583782bbb3d76690866b64b969f52 (diff) | |
[bug] make srp token changes propagate to nicknym object
the token is set when we get the srp token in the keymanager service,
but it wasn't been propagated properly to the internal nicknym object
that was refactored recently.
here I make the setter write the same token to both keymanager itself
and the nicknym.
some little additional refactors:
- move gpg initialization to a helper method
  in this way it becomes easier to stub the soledad and keymanager
  components, for testing.
- name nicknym token as publicly visible, since i'm accessing
  it from the keymanager object.
- Resolves: #8651
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/bitmask/keymanager/__init__.py | 6 | ||||
| -rw-r--r-- | src/leap/bitmask/keymanager/nicknym.py | 6 | 
2 files changed, 8 insertions, 4 deletions
| diff --git a/src/leap/bitmask/keymanager/__init__.py b/src/leap/bitmask/keymanager/__init__.py index ed3726a..f0f8267 100644 --- a/src/leap/bitmask/keymanager/__init__.py +++ b/src/leap/bitmask/keymanager/__init__.py @@ -90,7 +90,6 @@ class KeyManager(object):          self.api_uri = api_uri          self.api_version = api_version          self.uid = uid -        self._openpgp = OpenPGPScheme(soledad, gpgbinary=gpgbinary)          create = self._create_combined_bundle_file          try:              self._combined_ca_bundle = combined_ca_bundle or create() @@ -102,11 +101,15 @@ class KeyManager(object):          self._nicknym = Nicknym(self._nickserver_uri,                                  self._ca_cert_path, self._token)          self.refresher = None +        self._init_gpg(soledad, gpgbinary)      #      # utilities      # +    def _init_gpg(self, soledad, gpgbinary): +        self._openpgp = OpenPGPScheme(soledad, gpgbinary=gpgbinary) +      def start_refresher(self):          self.refresher = RandomRefreshPublicKey(self._openpgp, self)          self.refresher.start() @@ -376,6 +379,7 @@ class KeyManager(object):      def _set_token(self, token):          self._token = token +        self._nicknym.token = token      token = property(          _get_token, _set_token, doc='The session token.') diff --git a/src/leap/bitmask/keymanager/nicknym.py b/src/leap/bitmask/keymanager/nicknym.py index 5fe9992..7c738da 100644 --- a/src/leap/bitmask/keymanager/nicknym.py +++ b/src/leap/bitmask/keymanager/nicknym.py @@ -43,7 +43,7 @@ class Nicknym(object):      def __init__(self, nickserver_uri, ca_cert_path, token):          self._nickserver_uri = nickserver_uri          self._async_client_pinned = HTTPClient(ca_cert_path) -        self._token = token +        self.token = token      @defer.inlineCallbacks      def put_key(self, uid, key_data, api_uri, api_version): @@ -72,11 +72,11 @@ class Nicknym(object):              uid)          leap_assert( -            self._token is not None, +            self.token is not None,              'We need a token to interact with webapp!')          if type(data) == dict:              data = urllib.urlencode(data) -        headers = {'Authorization': [str('Token token=%s' % self._token)]} +        headers = {'Authorization': [str('Token token=%s' % self.token)]}          headers['Content-Type'] = ['application/x-www-form-urlencoded']          try:              res = yield self._async_client_pinned.request(str(uri), 'PUT', | 
