From 520530dfcf34fdf1a521d561dd95cf6fcbc76d64 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 14 Sep 2018 22:29:43 -0400 Subject: metrics: add initial Prometheus support (#4141) --- pkg/context/auth.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'pkg/context') diff --git a/pkg/context/auth.go b/pkg/context/auth.go index 60c020a0..facc9631 100644 --- a/pkg/context/auth.go +++ b/pkg/context/auth.go @@ -5,13 +5,16 @@ package context import ( + "net/http" "net/url" + "strings" "github.com/go-macaron/csrf" "gopkg.in/macaron.v1" "github.com/gogs/gogs/pkg/auth" "github.com/gogs/gogs/pkg/setting" + "github.com/gogs/gogs/pkg/tool" ) type ToggleOptions struct { @@ -92,3 +95,18 @@ func Toggle(options *ToggleOptions) macaron.Handler { } } } + +// RequireBasicAuth verifies HTTP Basic Authentication header with given credentials +func (c *Context) RequireBasicAuth(username, password string) { + fields := strings.Fields(c.Req.Header.Get("Authorization")) + if len(fields) != 2 || fields[0] != "Basic" { + c.Status(http.StatusUnauthorized) + return + } + + uname, passwd, _ := tool.BasicAuthDecode(fields[1]) + if uname != username || passwd != password { + c.Status(http.StatusForbidden) + return + } +} -- cgit v1.2.3