1
0
mirror of https://github.com/astaxie/beego.git synced 2024-11-26 05:11:31 +00:00
This commit is contained in:
astaxie 2013-09-22 14:32:18 +08:00
parent 4a3d32dc1f
commit 797bd98269

View File

@ -444,18 +444,15 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
vc := reflect.New(runrouter.controllerType) vc := reflect.New(runrouter.controllerType)
//call the controller init function //call the controller init function
init := vc.MethodByName("Init") method := vc.MethodByName("Init")
in := make([]reflect.Value, 2) in := make([]reflect.Value, 2)
in[0] = reflect.ValueOf(context) in[0] = reflect.ValueOf(context)
in[1] = reflect.ValueOf(runrouter.controllerType.Name()) in[1] = reflect.ValueOf(runrouter.controllerType.Name())
init.Call(in)
//call prepare function
in = make([]reflect.Value, 0)
method := vc.MethodByName("Prepare")
method.Call(in) method.Call(in)
//if XSRF is Enable then check cookie where there has any cookie in the request's cookie _csrf //if XSRF is Enable then check cookie where there has any cookie in the request's cookie _csrf
if EnableXSRF { if EnableXSRF {
in = make([]reflect.Value, 0)
method = vc.MethodByName("XsrfToken") method = vc.MethodByName("XsrfToken")
method.Call(in) method.Call(in)
if r.Method == "POST" || r.Method == "DELETE" || r.Method == "PUT" || if r.Method == "POST" || r.Method == "DELETE" || r.Method == "PUT" ||
@ -465,6 +462,11 @@ func (p *ControllerRegistor) ServeHTTP(rw http.ResponseWriter, r *http.Request)
} }
} }
//call prepare function
in = make([]reflect.Value, 0)
method = vc.MethodByName("Prepare")
method.Call(in)
//if response has written,yes don't run next //if response has written,yes don't run next
if !w.started { if !w.started {
if r.Method == "GET" { if r.Method == "GET" {