Merge branch 'protect-endpoints' of github.com:molecula/featurebase into protect-endpoints

This commit is contained in:
reesporte 2021-12-29 13:38:55 -06:00
commit 8e697c0d8c
2 changed files with 22 additions and 8 deletions

View file

@ -548,7 +548,8 @@ func (h *Handler) mwAuth(handler http.HandlerFunc, perm authz.Permission) http.H
}
p, err := h.permissions.GetPermissions(groups, indexName)
//check error
// err is being checked later, after logging
uinfo := h.auth.GetUserInfo(w, r)
//get query string if applicable
@ -565,7 +566,10 @@ func (h *Handler) mwAuth(handler http.HandlerFunc, perm authz.Permission) http.H
perm = authz.Write
}
}
if perm != authz.Admin {
queryString = strings.Replace(queryString, "\n", "", -1)
if r.Method == "POST" {
h.querylogger.Infof("User ID: %s, User Name: %s, Endpoint: %s, Index: %s, Query: %s, Err: %v", uinfo.UserID, uinfo.UserName, r.URL.Path, indexName, queryString, err)
}
if err != nil || !p.Satisfies(perm.String()) {
@ -751,13 +755,19 @@ func headerAcceptRoaringRow(header http.Header) bool {
}
//WIP
func (h *Handler) filterResponse(schema []*pilosa.IndexInfo, g []authn.Group) {
// if h.auth != nil{
// indexes := h.permissions.GetAuthorizedIndexList(g, authz.Read.String())
// func (h *Handler) filterResponse(r *http.Request, schema []*pilosa.IndexInfo) {
// if h.auth != nil {
// groups := r.Context().Value(contextKeyGroupMembership)
// }
// // indexes := h.permissions.GetAuthorizedIndexList(g, authz.Read.String())
// for _, s := range schema {
// h.querylogger.Infof(s.Name)
}
// }
// }
// }
// handleGetSchema handles GET /schema requests.
func (h *Handler) handleGetSchema(w http.ResponseWriter, r *http.Request) {
@ -776,7 +786,8 @@ func (h *Handler) handleGetSchema(w http.ResponseWriter, r *http.Request) {
}
groups := r.Context().Value(contextKeyGroupMembership)
h.filterResponse(schema, groups.([]authn.Group))
h.querylogger.Infof("groups: %+v", groups)
// h.filterResponse(r, schema)
if err := json.NewEncoder(w).Encode(pilosa.Schema{Indexes: schema}); err != nil {
h.logger.Errorf("write schema response error: %s", err)

View file

@ -549,6 +549,9 @@ func (m *Command) SetupServer() error {
if err != nil {
return errors.Wrap(err, "setting up querylogger")
}
m.querylogger.Infof("Group with admin level access: %v", p.Admin)
m.querylogger.Infof("Permissions: %+v", p.Permissions)
}
m.Handler, err = http.NewHandler(