Don't store cerain keys ever.

CURA-7180
This commit is contained in:
Remco Burema 2021-03-30 17:24:25 +02:00
parent 315898864c
commit bde88d7875
No known key found for this signature in database
GPG key ID: 215C49431D43F98C

View file

@ -11,6 +11,7 @@ from UM.Logger import Logger
if TYPE_CHECKING:
from cura.OAuth2.Models import BaseModel
DONT_EVER_STORE = ["refresh_token"]
class KeyringAttribute:
"""
@ -34,17 +35,20 @@ class KeyringAttribute:
keyring.set_password("cura", self._keyring_name, value)
except PasswordSetError:
self._store_secure = False
setattr(instance, self._name, value)
if self._name not in DONT_EVER_STORE:
setattr(instance, self._name, value)
Logger.logException("w", "Keyring access denied")
except NoKeyringError:
self._store_secure = False
setattr(instance, self._name, value)
if self._name not in DONT_EVER_STORE:
setattr(instance, self._name, value)
Logger.logException("w", "No keyring backend present")
except BaseException as e:
# A BaseException can occur in Windows when the keyring attempts to write a token longer than 1024
# characters in the Windows Credentials Manager.
self._store_secure = False
setattr(instance, self._name, value)
if self._name not in DONT_EVER_STORE:
setattr(instance, self._name, value)
Logger.log("w", "Keyring failed: {}".format(e))
else:
setattr(instance, self._name, value)