mirror of
https://github.com/gotoeasy/glogcenter.git
synced 2025-09-15 12:58:34 +08:00
Cors
This commit is contained in:
parent
7ac7e17a7f
commit
326b6a15f8
@ -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数量
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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=
|
||||
|
||||
@ -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,
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user