From 52e4e5a1a7bfbe038f4f73044662cea18537d12f Mon Sep 17 00:00:00 2001 From: yvesn <yvesn> Date: Wed, 2 Aug 2017 16:55:43 +0000 Subject: [PATCH] SSDM-5398: password reset - using correct path to password util; removed superfluous & from url; moved file-exists check to correct position; removed print statements SVN: 38599 --- .../PersistentKeyValueStore.java | 10 +++++----- .../lib/persistentkeyvaluestore.jar | Bin 3462 -> 3461 bytes .../password-reset-api/password-reset-api.py | 8 ++------ 3 files changed, 7 insertions(+), 11 deletions(-) diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore-source/PersistentKeyValueStore.java b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore-source/PersistentKeyValueStore.java index cbbd3a4b2f7..48bc86698b0 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore-source/PersistentKeyValueStore.java +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore-source/PersistentKeyValueStore.java @@ -73,15 +73,15 @@ public class PersistentKeyValueStore { @SuppressWarnings("unchecked") private static void load() { - try (FileInputStream fis = new FileInputStream(KEY_STORE_FILE)) { - if (new File(KEY_STORE_FILE).exists()) { + if (new File(KEY_STORE_FILE).exists()) { + try (FileInputStream fis = new FileInputStream(KEY_STORE_FILE)) { ObjectInputStream ois = new ObjectInputStream(fis); keyStore = (ConcurrentMap<String, Serializable>) ois.readObject(); ois.close(); + } catch (IOException | ClassNotFoundException e) + { + e.printStackTrace(); } - } catch (IOException | ClassNotFoundException e) - { - e.printStackTrace(); } } diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore.jar b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/lib/persistentkeyvaluestore.jar index 1f2a896f4205e7371109844e1328390ff6557c8f..4c8804a287c4a05f4c98a11ea54cae28aec062b7 100644 GIT binary patch delta 2049 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 delta 2055 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 diff --git a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/password-reset-api.py b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/password-reset-api.py index 25067b67836..677fd7333e8 100644 --- a/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/password-reset-api.py +++ b/openbis_standard_technologies/dist/core-plugins/eln-lims/1/dss/reporting-plugins/password-reset-api/password-reset-api.py @@ -43,11 +43,9 @@ def process(tr, parameters, tableBuilder): def sendResetPasswordEmail(tr, userId, baseUrl): - print("sendResetPasswordEmail") # generate and store token token = UUID.randomUUID().toString() timestamp = time.time() - print("timestamp: " + str(timestamp)) PersistentKeyValueStore.put(userId + RESET_TOKEN_KEY_POSTFIX, { "token" : token, "timestamp" : timestamp}) # send email emailAddress = getUserEmail(tr, userId) @@ -70,8 +68,6 @@ def sendMail(tr, email, subject, body): fromAddress = None; recipient1 = EMailAddress(email); tr.getGlobalState().getMailClient().sendEmailMessage(subject, body, replyTo, fromAddress, recipient1); - # TODO don't print message - contains password - print "--- MAIL ---" + " Recipient: " + email + " Topic: " + subject + " Message: " + body def getJsonForData(data): objectMapper = GenericObjectMapper(); @@ -102,7 +98,7 @@ def sendEmailWithNewPassword(tr, email, userId, newPassword): sendMail(tr, email, newPasswordSubject, newPasswordBody) def getPasswordResetLink(emailAddress, userId, token, baseUrl): - return "%s?resetPassword=true&&userId=%s&token=%s" % (baseUrl, userId, token) + return "%s?resetPassword=true&userId=%s&token=%s" % (baseUrl, userId, token) def resetPasswordInternal(tr, email, userId): newPassword = getNewPassword() @@ -128,7 +124,7 @@ def getNewPassword(): def updateUserPassword(userId, password): if os.path.isfile(passwdShPath): - subprocess.call([path, 'change', userId, '-p', password]) #Changes the user pass, works always + subprocess.call([passwdShPath, 'change', userId, '-p', password]) #Changes the user pass, works always return True; else: return False; -- GitLab