@@ -81,14 +81,18 @@ func AutoSignIn(ctx *context.Context) (bool, error) {
8181 }
8282
8383 isSucceed = true
84- err = ctx .Session .Set ("uid" , u .ID )
85- if err != nil {
84+
85+ // Set session IDs
86+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
8687 return false , err
8788 }
88- err = ctx .Session .Set ("uname" , u .Name )
89- if err != nil {
89+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
90+ return false , err
91+ }
92+ if err := ctx .Session .Release (); err != nil {
9093 return false , err
9194 }
95+
9296 ctx .SetCookie (setting .CSRFCookieName , "" , - 1 , setting .AppSubURL , setting .SessionConfig .Domain , setting .SessionConfig .Secure , true )
9397 return true , nil
9498}
@@ -203,14 +207,16 @@ func SignInPost(ctx *context.Context, form auth.SignInForm) {
203207 }
204208
205209 // User needs to use 2FA, save data and redirect to 2FA page.
206- err = ctx .Session .Set ("twofaUid" , u .ID )
207- if err != nil {
208- ctx .ServerError ("UserSignIn" , err )
210+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
211+ ctx .ServerError ("UserSignIn: Unable to set twofaUid in session" , err )
209212 return
210213 }
211- err = ctx .Session .Set ("twofaRemember" , form .Remember )
212- if err != nil {
213- ctx .ServerError ("UserSignIn" , err )
214+ if err := ctx .Session .Set ("twofaRemember" , form .Remember ); err != nil {
215+ ctx .ServerError ("UserSignIn: Unable to set twofaRemember in session" , err )
216+ return
217+ }
218+ if err := ctx .Session .Release (); err != nil {
219+ ctx .ServerError ("UserSignIn: Unable to save session" , err )
214220 return
215221 }
216222
@@ -407,10 +413,14 @@ func U2FChallenge(ctx *context.Context) {
407413 ctx .ServerError ("u2f.NewChallenge" , err )
408414 return
409415 }
410- if err = ctx .Session .Set ("u2fChallenge" , challenge ); err != nil {
411- ctx .ServerError ("UserSignIn" , err )
416+ if err : = ctx .Session .Set ("u2fChallenge" , challenge ); err != nil {
417+ ctx .ServerError ("UserSignIn: unable to set u2fChallenge in session " , err )
412418 return
413419 }
420+ if err := ctx .Session .Release (); err != nil {
421+ ctx .ServerError ("UserSignIn: unable to store session" , err )
422+ }
423+
414424 ctx .JSON (200 , challenge .SignRequest (regs .ToRegistrations ()))
415425}
416426
@@ -494,13 +504,14 @@ func handleSignInFull(ctx *context.Context, u *models.User, remember bool, obeyR
494504 _ = ctx .Session .Delete ("twofaRemember" )
495505 _ = ctx .Session .Delete ("u2fChallenge" )
496506 _ = ctx .Session .Delete ("linkAccount" )
497- err := ctx .Session .Set ("uid" , u .ID )
498- if err != nil {
499- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
507+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
508+ log .Error ("Error setting uid %d in session: %v" , u .ID , err )
500509 }
501- err = ctx .Session .Set ("uname" , u .Name )
502- if err != nil {
503- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
510+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
511+ log .Error ("Error setting uname %s session: %v" , u .Name , err )
512+ }
513+ if err := ctx .Session .Release (); err != nil {
514+ log .Error ("Unable to store session: %v" , err )
504515 }
505516
506517 // Language setting of the user overwrites the one previously set
@@ -593,9 +604,11 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
593604
594605 if u == nil {
595606 // no existing user is found, request attach or new account
596- err = ctx .Session .Set ("linkAccountGothUser" , gothUser )
597- if err != nil {
598- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
607+ if err := ctx .Session .Set ("linkAccountGothUser" , gothUser ); err != nil {
608+ log .Error ("Error setting linkAccountGothUser in session: %v" , err )
609+ }
610+ if err := ctx .Session .Release (); err != nil {
611+ log .Error ("Error storing session: %v" , err )
599612 }
600613 ctx .Redirect (setting .AppSubURL + "/user/link_account" )
601614 return
@@ -610,13 +623,14 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
610623 return
611624 }
612625
613- err = ctx .Session .Set ("uid" , u .ID )
614- if err != nil {
615- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
626+ if err := ctx .Session .Set ("uid" , u .ID ); err != nil {
627+ log .Error ("Error setting uid in session: %v" , err )
616628 }
617- err = ctx .Session .Set ("uname" , u .Name )
618- if err != nil {
619- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
629+ if err := ctx .Session .Set ("uname" , u .Name ); err != nil {
630+ log .Error ("Error setting uname in session: %v" , err )
631+ }
632+ if err := ctx .Session .Release (); err != nil {
633+ log .Error ("Error storing session: %v" , err )
620634 }
621635
622636 // Clear whatever CSRF has right now, force to generate a new one
@@ -645,13 +659,14 @@ func handleOAuth2SignIn(u *models.User, gothUser goth.User, ctx *context.Context
645659 }
646660
647661 // User needs to use 2FA, save data and redirect to 2FA page.
648- err = ctx .Session .Set ("twofaUid" , u .ID )
649- if err != nil {
650- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
662+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
663+ log .Error ("Error setting twofaUid in session: %v" , err )
651664 }
652- err = ctx .Session .Set ("twofaRemember" , false )
653- if err != nil {
654- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
665+ if err := ctx .Session .Set ("twofaRemember" , false ); err != nil {
666+ log .Error ("Error setting twofaRemember in session: %v" , err )
667+ }
668+ if err := ctx .Session .Release (); err != nil {
669+ log .Error ("Error storing session: %v" , err )
655670 }
656671
657672 // If U2F is enrolled -> Redirect to U2F instead
@@ -816,17 +831,17 @@ func LinkAccountPostSignIn(ctx *context.Context, signInForm auth.SignInForm) {
816831 }
817832
818833 // User needs to use 2FA, save data and redirect to 2FA page.
819- err = ctx .Session .Set ("twofaUid" , u .ID )
820- if err != nil {
821- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
834+ if err := ctx .Session .Set ("twofaUid" , u .ID ); err != nil {
835+ log .Error ("Error setting twofaUid in session: %v" , err )
822836 }
823- err = ctx .Session .Set ("twofaRemember" , signInForm .Remember )
824- if err != nil {
825- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
837+ if err := ctx .Session .Set ("twofaRemember" , signInForm .Remember ); err != nil {
838+ log .Error ("Error setting twofaRemember in session: %v" , err )
826839 }
827- err = ctx .Session .Set ("linkAccount" , true )
828- if err != nil {
829- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
840+ if err := ctx .Session .Set ("linkAccount" , true ); err != nil {
841+ log .Error ("Error setting linkAccount in session: %v" , err )
842+ }
843+ if err := ctx .Session .Release (); err != nil {
844+ log .Error ("Error storing session: %v" , err )
830845 }
831846
832847 // If U2F is enrolled -> Redirect to U2F instead
@@ -1184,14 +1199,16 @@ func Activate(ctx *context.Context) {
11841199
11851200 log .Trace ("User activated: %s" , user .Name )
11861201
1187- err = ctx .Session .Set ("uid" , user .ID )
1188- if err != nil {
1189- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
1202+ if err := ctx .Session .Set ("uid" , user .ID ); err != nil {
1203+ log .Error (fmt .Sprintf ("Error setting uid in session: %v" , err ))
11901204 }
1191- err = ctx .Session .Set ("uname" , user .Name )
1192- if err != nil {
1193- log .Error (fmt .Sprintf ("Error setting session: %v" , err ))
1205+ if err := ctx .Session .Set ("uname" , user .Name ); err != nil {
1206+ log .Error (fmt .Sprintf ("Error setting uname in session: %v" , err ))
11941207 }
1208+ if err := ctx .Session .Release (); err != nil {
1209+ log .Error ("Error storing session: %v" , err )
1210+ }
1211+
11951212 ctx .Flash .Success (ctx .Tr ("auth.account_activated" ))
11961213 ctx .Redirect (setting .AppSubURL + "/" )
11971214 return
0 commit comments