This commit is contained in:
gotoeasy 2023-08-15 14:53:41 +08:00
parent 7ac7e17a7f
commit 326b6a15f8
4 changed files with 22 additions and 13 deletions

View File

@ -44,7 +44,7 @@ var minioPassword string
var minioBucket string
var enableUploadMinio bool
var goMaxProcess int
var enableCross bool
var enableCors bool
func init() {
cmn.SetLogLevel(cmn.GetEnvStr("GLC_LOG_LEVEL", "INFO")) // 默认INFO级别日志
@ -91,12 +91,12 @@ func UpdateConfigByEnv() {
minioBucket = cmn.GetEnvStr("GLC_MINIO_BUCKET", "") // MINIO桶名默认“”
enableUploadMinio = cmn.GetEnvBool("GLC_ENABLE_UPLOAD_MINIO", false) // 是否开启上传备份至MINIO服务器默认false
goMaxProcess = getGoMaxProcessConf(cmn.GetEnvInt("GLC_GOMAXPROCS", -1)) // 使用的最大CPU数量默认是最大CPU数量设定值不在实际数量范围是按最大看待
enableCross = cmn.GetEnvBool("GLC_ENABLE_CROSS", false) // 是否允许跨域默认false
enableCors = cmn.GetEnvBool("GLC_ENABLE_CORS", false) // 是否允许跨域默认false
}
// 取配置: 是否允许跨域可通过环境变量“GLC_ENABLE_CROSS”设定默认false
func IsEnableCross() bool {
return enableCross
func IsEnableCors() bool {
return enableCors
}
// 取配置: 使用的最大CPU数量可通过环境变量“GLC_GOMAXPROCS”设定默认最大CPU数量

View File

@ -60,6 +60,7 @@ require (
)
require (
github.com/gin-contrib/cors v1.4.0
github.com/gin-contrib/gzip v0.0.5
github.com/gin-gonic/gin v1.8.1
github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db // indirect

View File

@ -21,6 +21,8 @@ github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4
github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
github.com/gin-contrib/cors v1.4.0 h1:oJ6gwtUl3lqV0WEIwM/LxPF1QZ5qe2lGWdY2+bz7y0g=
github.com/gin-contrib/cors v1.4.0/go.mod h1:bs9pNM0x/UsmHPBWT2xZz9ROh8xYjYkiURUfmBoMlcs=
github.com/gin-contrib/gzip v0.0.5 h1:mhnVU32YnnBh2LPH2iqRqsA/eR7SAqRaD388jL2s/j0=
github.com/gin-contrib/gzip v0.0.5/go.mod h1:OPIK6HR0Um2vNmBUTlayD7qle4yVVRZT0PyhdUigrKk=
github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE=

View File

@ -10,6 +10,7 @@ import (
"regexp"
"time"
"github.com/gin-contrib/cors"
"github.com/gin-contrib/gzip"
"github.com/gin-gonic/gin"
"github.com/gotoeasy/glang/cmn"
@ -30,15 +31,8 @@ func Run() {
ginEngine := gin.Default()
// 允许跨域
if conf.IsEnableCross() {
ginEngine.Use(func(c *gin.Context) {
c.Writer.Header().Set("Access-Control-Allow-Origin", "*")
c.Writer.Header().Set("Access-Control-Allow-Credentials", "true")
c.Writer.Header().Set("Access-Control-Allow-Methods", "GET, POST, OPTIONS")
c.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type,AccessToken,X-CSRF-Token,Authorization,Token,X-GLC-AUTH")
c.Writer.Header().Set("Access-Control-Expose-Headers", "Content-Length,Access-Control-Allow-Origin,Access-Control-Allow-Headers,Content-Type,Token,X-GLC-AUTH")
c.Next()
})
if conf.IsEnableCors() {
ginEngine.Use(newCors())
}
// 按配置判断启用GZIP压缩
@ -140,3 +134,15 @@ func Run() {
cmn.Fatalln(err.Error()) // 启动失败的话打印错误信息后退出
}
}
func newCors() gin.HandlerFunc {
return cors.New(cors.Config{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
AllowHeaders: []string{"*"},
ExposeHeaders: []string{"Content-Length", "Authorization", "Content-Type"},
AllowCredentials: true,
MaxAge: 12 * time.Hour,
},
)
}