mirror of https://github.com/jumpserver/jumpserver
fix: 账号备份选择SFTP有多个时,重复编码password会导致任务异常
parent
457d2b2359
commit
b557e264bc
|
@ -168,9 +168,8 @@ class AccountBackupHandler:
|
||||||
if not user.secret_key:
|
if not user.secret_key:
|
||||||
attachment_list = []
|
attachment_list = []
|
||||||
else:
|
else:
|
||||||
password = user.secret_key.encode('utf8')
|
|
||||||
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
|
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
|
||||||
encrypt_and_compress_zip_file(attachment, password, files)
|
encrypt_and_compress_zip_file(attachment, user.secret_key, files)
|
||||||
attachment_list = [attachment, ]
|
attachment_list = [attachment, ]
|
||||||
AccountBackupExecutionTaskMsg(plan_name, user).publish(attachment_list)
|
AccountBackupExecutionTaskMsg(plan_name, user).publish(attachment_list)
|
||||||
print('邮件已发送至{}({})'.format(user, user.email))
|
print('邮件已发送至{}({})'.format(user, user.email))
|
||||||
|
@ -191,7 +190,6 @@ class AccountBackupHandler:
|
||||||
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
|
attachment = os.path.join(PATH, f'{plan_name}-{local_now_filename()}-{time.time()}.zip')
|
||||||
if password:
|
if password:
|
||||||
print('\033[32m>>> 使用加密密码对文件进行加密中\033[0m')
|
print('\033[32m>>> 使用加密密码对文件进行加密中\033[0m')
|
||||||
password = password.encode('utf8')
|
|
||||||
encrypt_and_compress_zip_file(attachment, password, files)
|
encrypt_and_compress_zip_file(attachment, password, files)
|
||||||
else:
|
else:
|
||||||
zip_files(attachment, files)
|
zip_files(attachment, files)
|
||||||
|
|
|
@ -230,9 +230,8 @@ class ChangeSecretManager(AccountBasePlaybookManager):
|
||||||
for user in recipients:
|
for user in recipients:
|
||||||
attachments = []
|
attachments = []
|
||||||
if user.secret_key:
|
if user.secret_key:
|
||||||
password = user.secret_key.encode('utf8')
|
|
||||||
attachment = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.zip')
|
attachment = os.path.join(path, f'{name}-{local_now_filename()}-{time.time()}.zip')
|
||||||
encrypt_and_compress_zip_file(attachment, password, [filename])
|
encrypt_and_compress_zip_file(attachment, user.secret_key, [filename])
|
||||||
attachments = [attachment]
|
attachments = [attachment]
|
||||||
ChangeSecretExecutionTaskMsg(name, user, summary).publish(attachments)
|
ChangeSecretExecutionTaskMsg(name, user, summary).publish(attachments)
|
||||||
os.remove(filename)
|
os.remove(filename)
|
||||||
|
|
|
@ -21,6 +21,8 @@ def encrypt_and_compress_zip_file(filename, secret_password, encrypted_filenames
|
||||||
with pyzipper.AESZipFile(
|
with pyzipper.AESZipFile(
|
||||||
filename, 'w', compression=pyzipper.ZIP_LZMA, encryption=pyzipper.WZ_AES
|
filename, 'w', compression=pyzipper.ZIP_LZMA, encryption=pyzipper.WZ_AES
|
||||||
) as zf:
|
) as zf:
|
||||||
|
if secret_password and isinstance(secret_password, str):
|
||||||
|
secret_password = secret_password.encode('utf8')
|
||||||
zf.setpassword(secret_password)
|
zf.setpassword(secret_password)
|
||||||
for encrypted_filename in encrypted_filenames:
|
for encrypted_filename in encrypted_filenames:
|
||||||
with open(encrypted_filename, 'rb') as f:
|
with open(encrypted_filename, 'rb') as f:
|
||||||
|
|
Loading…
Reference in New Issue