package main import ( "github.com/astaxie/beego" "github.com/astaxie/beego/plugins/cors" _ "github.com/astaxie/beego/session/redis" "github.com/open-ct/openitem/casdoor" "github.com/open-ct/openitem/object" "github.com/open-ct/openitem/routers" ) func main() { object.InitAdapter() casdoor.InitCasdoorAdapter() if beego.BConfig.RunMode == "dev" { beego.BConfig.WebConfig.DirectoryIndex = true beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger" } beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{ AllowOrigins: []string{"*"}, AllowMethods: []string{"GET", "POST", "DELETE", "PUT", "PATCH", "OPTIONS"}, AllowHeaders: []string{"Origin", "X-Requested-With", "Content-Type", "Accept"}, ExposeHeaders: []string{"Content-Length"}, AllowCredentials: true, })) // beego.DelStaticPath("/static") beego.SetStaticPath("/static", "web/build/static") // https://studygolang.com/articles/2303 beego.InsertFilter("/", beego.BeforeRouter, routers.TransparentStatic) // must has this for default page beego.InsertFilter("/*", beego.BeforeRouter, routers.TransparentStatic) if beego.AppConfig.String("redisEndpoint") == "" { beego.BConfig.WebConfig.Session.SessionProvider = "file" beego.BConfig.WebConfig.Session.SessionProviderConfig = "./tmp" } else { beego.BConfig.WebConfig.Session.SessionProvider = "redis" beego.BConfig.WebConfig.Session.SessionProviderConfig = beego.AppConfig.String("redisEndpoint") } beego.BConfig.WebConfig.Session.SessionGCMaxLifetime = 3600 * 24 * 365 beego.Run() }