Skip to content

Commit 0468f31

Browse files
fix sessionTimeout passed as a query param
* option: fix set sessionTimeout invalid * add getSessionTimeout test * change getSessionTimeout test * add no sessionTimeout param test Co-authored-by: triwingames <[email protected]>
1 parent 12d99e0 commit 0468f31

File tree

2 files changed

+35
-1
lines changed

2 files changed

+35
-1
lines changed

utils.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func getSessionId(req *http.Request) string {
5656
func getSessionTimeout(req *http.Request) int {
5757
params := req.URL.Query()
5858
sessionTimeout, err := strconv.Atoi(params.Get("session_timeout"))
59-
if err != nil && sessionTimeout > 0 {
59+
if err == nil && sessionTimeout > 0 {
6060
return sessionTimeout
6161
}
6262
return 60

utils_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,40 @@ func TestDecompression(t *testing.T) {
279279
}
280280
}
281281

282+
func TestGetSessionTimeout(t *testing.T) {
283+
req, err := http.NewRequest(http.MethodPost, "http://127.0.0.1:9090", nil)
284+
if err != nil {
285+
panic(err)
286+
}
287+
params := make(url.Values)
288+
// uint str return self
289+
firstSessionTimeout := "888"
290+
// invalid str return 60
291+
secondSessionTimeout := "600s"
292+
thirdSessionTimeout := "aaa"
293+
params.Add("query", "SELECT 1")
294+
params.Set("session_timeout", firstSessionTimeout)
295+
req.URL.RawQuery = params.Encode()
296+
if getSessionTimeout(req) != 888 {
297+
t.Fatalf("user set session_timeout %q; get %q , expected %q ", firstSessionTimeout, getSessionTimeout(req), 888)
298+
}
299+
params.Set("session_timeout", secondSessionTimeout)
300+
req.URL.RawQuery = params.Encode()
301+
if getSessionTimeout(req) != 60 {
302+
t.Fatalf("user set session_timeout %q; get %q , expected %q", secondSessionTimeout, getSessionTimeout(req), 60)
303+
}
304+
params.Set("session_timeout", thirdSessionTimeout)
305+
req.URL.RawQuery = params.Encode()
306+
if getSessionTimeout(req) != 60 {
307+
t.Fatalf("user set session_timeout %q; get %q , expected %q", thirdSessionTimeout, getSessionTimeout(req), 60)
308+
}
309+
params.Del("session_timeout")
310+
req.URL.RawQuery = params.Encode()
311+
if getSessionTimeout(req) != 60 {
312+
t.Fatalf("user not set session_timeout ,get %q , expected %q", getSessionTimeout(req), 60)
313+
}
314+
}
315+
282316
func makeQuery(n int) []byte {
283317
q1 := "SELECT column "
284318
q2 := "WHERE Date=today()"

0 commit comments

Comments
 (0)