Exemplo n.º 1
0
 def rotate_fernet_key(self):
     """轮转加密 ."""
     fernet = get_fernet()
     if self._password and self.is_encrypted:
         self._password = fernet.rotate(
             self._password.encode('utf-8')).decode()
     if self._extra and self.is_extra_encrypted:
         self._extra = fernet.rotate(self._extra.encode('utf-8')).decode()
Exemplo n.º 2
0
 def set_val(self, value):
     """设置常量的值 ."""
     if value:
         # 加密常量值
         fernet_key = configuration.conf.get('core', 'FERNET_KEY')
         fernet = get_fernet(fernet_key)
         self._val = fernet.encrypt(bytes(value, 'utf-8')).decode()
         self.is_encrypted = fernet.is_encrypted
Exemplo n.º 3
0
 def set_extra(self, value):
     if value:
         fernet = get_fernet()
         self._extra = fernet.encrypt(bytes(value, 'utf-8')).decode()
         self.is_extra_encrypted = fernet.is_encrypted
     else:
         self._extra = value
         self.is_extra_encrypted = False
Exemplo n.º 4
0
 def get_extra(self):
     if self._extra and self.is_extra_encrypted:
         fernet = get_fernet()
         if not fernet.is_encrypted:
             raise AirflowException(
                 "Can't decrypt `extra` params for login={},\
                 FERNET_KEY configuration is missing".format(self.login))
         return fernet.decrypt(bytes(self._extra, 'utf-8')).decode()
     else:
         return self._extra
Exemplo n.º 5
0
 def get_password(self):
     if self._password and self.is_encrypted:
         fernet = get_fernet()
         if not fernet.is_encrypted:
             raise AirflowException(
                 "Can't decrypt encrypted password for login={}, \
                 FERNET_KEY configuration is missing".format(self.login))
         return fernet.decrypt(bytes(self._password, 'utf-8')).decode()
     else:
         return self._password
Exemplo n.º 6
0
 def get_val(self):
     """获得常量的值 ."""
     log = LoggingMixin().log
     if self._val and self.is_encrypted:
         try:
             # 解密常量值
             fernet_key = configuration.conf.get('core', 'FERNET_KEY')
             fernet = get_fernet(fernet_key)
             return fernet.decrypt(bytes(self._val, 'utf-8')).decode()
         except InvalidFernetToken:
             # 解密失败返回None
             log.error("Can't decrypt _val for key={}, invalid token "
                       "or value".format(self.key))
             return None
         except Exception:
             log.error("Can't decrypt _val for key={}, FERNET_KEY "
                       "configuration missing".format(self.key))
             return None
     else:
         return self._val
Exemplo n.º 7
0
 def set_password(self, value):
     if value:
         fernet = get_fernet()
         self._password = fernet.encrypt(bytes(value, 'utf-8')).decode()
         self.is_encrypted = fernet.is_encrypted