|
@@ -109,10 +109,20 @@ func RootHandleFunc(w ghttp.ResponseWriter, r *ghttp.Request) {
|
|
|
}
|
|
|
|
|
|
func TestUserFilter(t *testing.T) {
|
|
|
+ var times int = 10
|
|
|
+ for i := 0; i < times; i ++ {
|
|
|
+ testUserFilter(t, i)
|
|
|
+ }
|
|
|
+ log.Debug("TestUserFilter 测试完毕")
|
|
|
+}
|
|
|
+
|
|
|
+func testUserFilter(t *testing.T, times int) {
|
|
|
+ log.Debug("testUserFiler times(%v) --- START", times)
|
|
|
SessionLog = true
|
|
|
mux := http.NewServerMux()
|
|
|
+ mux.HandleFunc("/", RootHandleFunc)
|
|
|
mux.FilterFunc("/usr", UserFilterFunc)
|
|
|
- mux.HandleFunc("/login", RootHandleFunc)
|
|
|
+ //mux.HandleFunc("/login", RootHandleFunc)
|
|
|
mux.HandleFunc("/usr/halo", HaloHandleFunc)
|
|
|
|
|
|
go func() {
|
|
@@ -163,7 +173,7 @@ func TestUserFilter(t *testing.T) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //
|
|
|
+ // 错误的cookie请求,被重定向到/
|
|
|
req, err = ghttp.NewRequest("GET", "http://127.0.0.1:8023/usr/halo", nil)
|
|
|
if err != nil {
|
|
|
t.Error(err)
|
|
@@ -190,4 +200,55 @@ func TestUserFilter(t *testing.T) {
|
|
|
t.Error(string(bys))
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 查看sessiond的时间更新
|
|
|
+ now := util.Now10()
|
|
|
+ req, err = ghttp.NewRequest("GET", "http://127.0.0.1:8023/usr/halo", nil)
|
|
|
+ if err != nil {
|
|
|
+ t.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ cookie = &ghttp.Cookie{
|
|
|
+ Domain:"/",
|
|
|
+ Name:"token",
|
|
|
+ Value:session.Id,
|
|
|
+ }
|
|
|
+ req.AddCookie(cookie)
|
|
|
+ client = ghttp.Client{}
|
|
|
+ resp, err = client.Do(req)
|
|
|
+ if err != nil {
|
|
|
+ t.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ bys, err = ioutil.ReadAll(resp.Body)
|
|
|
+ if err != nil {
|
|
|
+ t.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if string(bys) != "halo" {
|
|
|
+ t.Error(string(bys))
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // check session
|
|
|
+ rows, err := dbm.Db().Query("SELECT LASTTIME FROM SESSION WHERE ID = ? ORDER BY LASTTIME DESC;", session.Id)
|
|
|
+ if err != nil {
|
|
|
+ t.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var sessionNow int64
|
|
|
+ for rows.Next() {
|
|
|
+ err = rows.Scan(&sessionNow)
|
|
|
+ if err != nil {
|
|
|
+ t.Error(err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ log.Debug("TestUserFilter get lastTime (%v), now (%v)", sessionNow, now)
|
|
|
+ if sessionNow < now {
|
|
|
+ t.Error(sessionNow)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ log.Debug("testUserFilter times(%v) --- END", times)
|
|
|
}
|