summaryrefslogtreecommitdiffstats
path: root/modules/setting/cors.go
blob: 04f3120536579d5677082f268c3ca0c41f271f69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// Copyright 2019 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package setting

import (
	"time"

	"code.gitea.io/gitea/modules/log"

	"gitea.com/macaron/cors"
)

var (
	// CORSConfig defines CORS settings
	CORSConfig cors.Options
	// EnableCORS defines whether CORS settings is enabled or not
	EnableCORS bool
)

func newCORSService() {
	sec := Cfg.Section("cors")
	// Check cors setting.
	EnableCORS = sec.Key("ENABLED").MustBool(false)

	maxAge := sec.Key("MAX_AGE").MustDuration(10 * time.Minute)

	CORSConfig = cors.Options{
		Scheme:           sec.Key("SCHEME").String(),
		AllowDomain:      sec.Key("ALLOW_DOMAIN").Strings(","),
		AllowSubdomain:   sec.Key("ALLOW_SUBDOMAIN").MustBool(),
		Methods:          sec.Key("METHODS").Strings(","),
		MaxAgeSeconds:    int(maxAge.Seconds()),
		AllowCredentials: sec.Key("ALLOW_CREDENTIALS").MustBool(),
	}

	if EnableCORS {
		log.Info("CORS Service Enabled")
	}
}