Optional oauth via + flag
This commit is contained in:
@@ -52,7 +52,7 @@ func (s *Server) lookup(host string) (*url.URL, error) {
|
||||
func (s *Server) lookupBOAuthZ(host string) (bool, error) {
|
||||
v := packable.NewString()
|
||||
err := s.db.Get(nsBOAuthZ, host, v)
|
||||
return v.String() != "", err
|
||||
return v.String() == "true", err
|
||||
}
|
||||
|
||||
func mapKey(host string) string {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user