Optional oauth via + flag

This commit is contained in:
Bel LaPointe
2019-11-03 07:55:38 -07:00
parent 7d3d6d88f6
commit 01b7b06971
4 changed files with 9 additions and 7 deletions

View File

@@ -53,12 +53,14 @@ type Server struct {
}
func (s *Server) Route(src string, dst config.Proxy) error {
hasOAuth := strings.HasPrefix(src, "+")
src = strings.TrimPrefix(src, "+")
log.Printf("Adding route %q -> %v...\n", src, dst)
u, err := url.Parse(dst.To)
if err != nil {
return err
}
s.db.Set(nsBOAuthZ, src, packable.NewString(fmt.Sprint(dst.BOAuthZ)))
s.db.Set(nsBOAuthZ, src, packable.NewString(fmt.Sprint(hasOAuth)))
return s.db.Set(nsRouting, src, packable.NewURL(u))
}
@@ -114,14 +116,14 @@ func (s *Server) doAuth(foo http.HandlerFunc) http.HandlerFunc {
return
}
}
ok, err := s.lookupBOAuthZ(mapKey(r.Host))
key := mapKey(r.Host)
ok, err := s.lookupBOAuthZ(key)
if err != nil {
w.WriteHeader(http.StatusInternalServerError)
return
}
if url, exists := config.GetBOAuthZ(); ok && exists {
name := mapKey(r.Host)
err := oauth2client.Authenticate(url, name, w, r)
err := oauth2client.Authenticate(url, key, w, r)
if err != nil {
return
}