// Copyright 2023 The casbin Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package main import ( "github.com/astaxie/beego" "github.com/astaxie/beego/plugins/cors" _ "github.com/astaxie/beego/session/redis" "github.com/casbin/casibase/casdoor" "github.com/casbin/casibase/object" "github.com/casbin/casibase/proxy" "github.com/casbin/casibase/routers" ) func main() { object.InitAdapter() casdoor.InitCasdoorAdapter() proxy.InitHttpClient() 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() }