package middleware import ( "net/http" "github.com/gin-gonic/gin" ) const dnsUserId = "DNSManageUserID" func DnsManageAuthMiddleware(c *gin.Context) { cfg := GetServerConfig(c) user, pwd, ok := c.Request.BasicAuth() if !ok { c.Request.Header.Set("WWW-Authenticate", `Basic realm="closed site"`) c.AbortWithStatus(http.StatusUnauthorized) return } if !cfg.DNSUserAuth(user, pwd) { c.AbortWithStatus(http.StatusForbidden) return } else { c.Set(dnsUserId, user) } c.Next() } func GetDnsAuthContext(c *gin.Context) string { return c.GetString(dnsUserId) }