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
zcmV+c2>$nm8-*JTP)h>@6aWYa2moM~u?%ej0#cTfdjdUw`Fj)B6+O=~j4j5-HUW&C
zf>~q9HcCtip>_$zOXEmhf*hx&3mr>?Js@k;nUS&Sl5|PBFSK+?+R`>{3f+TgWjk&I
zZBx=FUH_H-*dI#I8;!Lg1^V@qKh5aQedpeL?z!)c-}uifuL5`&|5Q*Vus1dv(w*50
zA=|J+<GRIvi=!u<u)a8{CDMA-F)dv|wLrsJZC(o{wB$@^Z2GJoa|G(cgHxxY6JsX_
zPY(@81_hcTd8epj8OfO*ftqvrq6;IiFZ(?07>Q8KOvcid#aN;K-0g^#;)>d+F_YAs
zv|KWJ4@-LQ44btWW+<v#hL$icXwwP3=a@{VH<mDel7@3kz}Fs_6sYbu<1BHrz=6Aj
zdQ7ut8P1P-G^%KVDzLHF#j1tCeJT{x_^}Pm3bqUMkXd_?Y|hyWp_pOELuN`(PLt-i
zZHH#`Br}VJY~7mIt<ZqxXf8=n_qU22Xc5>lqdN?L#+Vt`ENxDA*dKx8?SaVuf?bNx
z<H!Af*s0)c0=@qaj*4Aq6R2a7;}+Lhj-fNXW~P@XGXJEf27Bmj%PK9?bh_e(<;Ol8
zP_Uoum0P0X0kjKj%12mam)h@aci>Kwf}p_mQuB$lk%;Sz+lhk;x{73-^-vMQg96ID
zl>gY7l6YC^my72|0Nqj*hXl5kOL4LWZx;}MA?bKT#UnUM`DiKf9T(`jr=q;<$s~o`
zT47obP8&%X<DDvw;ZX|SF|(^la(kJ?rFQ#NY`{i8@A_2?NMTneOpSSMju=UOG(9)1
zTN84G<cym!EitKatoYkA`cnl0*jB#%0&1@J1G4o#G%}7eYjDl}$UW>sgz%-(+;}>F
z%CJ>_;scYLFpiT7o)Fk`_nkz=2%-Xylxg`}i@-BU2A@<h=`v_*^SU&=Tg8+#Y)COt
zX7A&M$X~9&a%`0*PB*GvAXr%#rAuU`A5if=Xm=N_XHpPbAH5PZYSYr^%z0g+o>38(
zsGG=}qZvs%EGsCh@>A0Ptcn?&EAd!=&%*VXQ;~$pAo6gKbv7358Z@z-55iVpanC4v
zpu$0#vNpH}X_N&iELuD4*$HqSiwYK~**l-AxPT9_NlAUdDIE+i(^`B4Pb>In@h0K!
zmMWgX$JioMs&Q+s9pkdWWJ1^GIHRASLt9syoW*D5ygyem<`wsn^)dJ3)A+1^g3s_E
zC=)@&=j2|axT;DdWwl>W@kM-zwpq;{bqnJWcZvi?9W8c_`gX@v!B@CTuOki_34JW>
zaIUhjeq2Pig0Bg*th;0rEq1zuZ^+H=n*ux9bM+UxaP*|t3o5>aZ&NzwEjDcZ&7rI?
zT>r}|zUvN4EMeNZOy;s5FXD%P3VyIogS%*A)-un_YE-<0AF)I&9*?F|DNDC)JuXk7
zNEv50$W{DA!H)|_9UdE8i0LWEFq0~NDx+^sWqBrR6P6a^H2BV#+@@M0m1vU#Yf6{<
zBb8~Rlh6wVQxKW6c%55hA-*3==$2m@70a@(8}$WliyVs8^`p)698MO0v}Q&2?>B5r
zaUw-NYj{<*??#>|nN6~|du#Zeir>pI@zWO1!btOF8H8WAB$KZf^(9x2f<Fti<sbAX
zG}|6Eogp)wjOV;0v2y?45vfp)%d7NgjZ`eBCr4><3bgy9X4;DB5|pi}bYjZ2*v+ll
z$2a3Dw8+DdcYgUoM{BKrYxVP5gH2FrsiWm-dROs!WDWIG%V@ZcEi2fXL2EeJv^#^n
zku?OSI#$rJjE9;Y&fsv<JNT7B?{yqs!HH`w=pesa++g=Hz;-mEnV%gvMC)O+Vu(++
z(XSEv@h&{ZU(MKwVXmN*<SVF`OvwEWYzQvn@jUcK*VyR7s96Vpgc0F2z>{v&TYS>1
zq-hCTf*q?E^Wmu#OswFkJW>;?`MsO<@8Rq3USjUcB`2Sra*L36@4<VC8{j$geh>c`
zePrwgBFYe}I9-LCn0`5j?srihU>@xSxi)yH0iHgGJgnm$R(%#ouX0n(=UMOeu#<>g
z^gmdDR-Z$g!K{aW*5jeo<uWs>@UxP%9wKCS0Z^R>6qLuh2Xu+_NZ-eavWkSjDpCTG
zE9fSl^MciOhL`YRDT$ybiH}naIW{u*B$biDr|AB9ffsJSDNFJdP%qVRgykP*_mAeX
zX{9c**?ie8vFbKEQ$^jL2aEU1HxVzxe-TaMJSoD0(!4l-wS?o#`0B_SE=_eV<Ljec
zOeTZpyE6Dr=Pf+gnZft2AQ0xgBJYDYBEi>D(-FRcx?smks0nst@crP8a4>@_*9g9u
zsyN61)lBcGtA#Osu6jl6WKO`N^y;I8Pw-!de)<paRbU7c6t*m=%|&Tv1AfjLnyIy4
z;Fq+G6Z2(%T=R+yK)KC8J_Rqje-|Nm{Wog*c&V+u?e>VKtJSQ3V7-2^)vJGY4NKYD
zf0e<npU0^zA1hhgE97HM^6}eI5^?h;#yQr!`-4ZxYXy|N_Ewbq@fxG;Vz>I-*^anF
z*MMn$u6ox$dDI+mH<$>mBlH~Ms!@_KM$L_L{S$~eAxg<k<|x{Q4!nUkNl`mH{ulg}
zwwO!N-wG+}%Tu&cfudX0y!*Q=_ka8sP)i30;@i-!p9cT{7_(yv#{mLhmXj<DvJFy}
f0!!lC(5{~c000=1>kMcCWs_75ECwA600000Z!Y=(

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