From 970a46a62b8255467c3de8120e03dfdef3cf8593 Mon Sep 17 00:00:00 2001 From: Esteban Garcia Date: Mon, 21 Sep 2020 18:19:45 +0100 Subject: [PATCH] Add optional remote message on auth failed --- http.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/http.go b/http.go index 3443e2f..3b423ad 100644 --- a/http.go +++ b/http.go @@ -22,7 +22,7 @@ type service struct { type Server struct { config Config services []service - AuthFunc func(Credential, *Request) (bool, error) + AuthFunc func(Credential, *Request) (bool, string, error) } type Request struct { @@ -103,7 +103,7 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { return } - allow, err := s.AuthFunc(cred, req) + allow, msg, err := s.AuthFunc(cred, req) if !allow || err != nil { if err != nil { logError("auth", err) @@ -111,6 +111,9 @@ func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { logError("auth", fmt.Errorf("rejected user %s", cred.Username)) w.WriteHeader(http.StatusUnauthorized) + if msg != "" { + w.Write([]byte(msg)) + } return } }