Implemented request validation in a filter

This commit is contained in:
Deluan 2016-02-24 20:21:51 -05:00
parent 93f115d8e4
commit ee04b72db1
6 changed files with 9 additions and 13 deletions

View File

@ -9,7 +9,6 @@ type GetLicenseController struct{ beego.Controller }
// @router /rest/getLicense.view [get]
func (this *GetLicenseController) Get() {
validate(this)
response := responses.NewXML(&responses.License{Valid: true})
this.Ctx.Output.Body(response)
}

View File

@ -10,8 +10,6 @@ type GetMusicFoldersController struct{ beego.Controller }
// @router /rest/getMusicFolders.view [get]
func (this *GetMusicFoldersController) Get() {
validate(this)
repository := new(repositories.MediaFolderRepository)
mediaFolderList, _ := repository.GetAll()
folders := make([]responses.MusicFolder, len(mediaFolderList))

View File

@ -10,7 +10,6 @@ type PingController struct{ beego.Controller }
// @router /rest/ping.view [get]
func (this *PingController) Get() {
validate(this)
response := responses.NewEmpty()
xmlBody, _ := xml.Marshal(response)
this.Ctx.Output.Body([]byte(xml.Header + string(xmlBody)))

View File

@ -10,7 +10,7 @@ type ControllerInterface interface {
CustomAbort(status int, body string)
}
func validate(controller ControllerInterface) {
func Validate(controller ControllerInterface) {
if beego.AppConfig.String("disableValidation") != "true" {
checkParameters(controller)
authenticate(controller)

View File

@ -1,16 +1,10 @@
// @APIVersion 1.0.0
// @Title beego Test API
// @Description beego has a very cool tools to autogenerate documents for your API
// @Contact astaxie@gmail.com
// @TermsOfServiceUrl http://beego.me/
// @License Apache 2.0
// @LicenseUrl http://www.apache.org/licenses/LICENSE-2.0.html
package routers
import (
"github.com/deluan/gosonic/controllers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/context"
)
func init() {
@ -19,4 +13,10 @@ func init() {
&controllers.GetLicenseController{},
&controllers.GetMusicFoldersController{},
)
var ValidateRequest = func(ctx *context.Context) {
controllers.Validate(&beego.Controller{Ctx: ctx})
}
beego.InsertFilter("/rest/*", beego.BeforeRouter, ValidateRequest)
}

View File

@ -4,7 +4,7 @@ import (
"fmt"
"github.com/astaxie/beego"
"net/http/httptest"
"net/http"
"net/http"
"path/filepath"
"runtime"
)