mirror of
https://github.com/ClusterCockpit/cc-backend
synced 2024-11-10 08:57:25 +01:00
Cleanup and add wildcard for IP Filter
This commit is contained in:
parent
3028f60807
commit
cda46141cc
@ -193,6 +193,10 @@ func securedCheck(r *http.Request) error {
|
|||||||
return fmt.Errorf("missing configuration key ApiAllowedIPs")
|
return fmt.Errorf("missing configuration key ApiAllowedIPs")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if config.Keys.ApiAllowedIPs[0] == "*" {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// extract IP address
|
// extract IP address
|
||||||
IPAddress := r.Header.Get("X-Real-Ip")
|
IPAddress := r.Header.Get("X-Real-Ip")
|
||||||
if IPAddress == "" {
|
if IPAddress == "" {
|
||||||
@ -1130,71 +1134,6 @@ func (api *RestApi) updateUser(rw http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// func (api *RestApi) secureUpdateUser(rw http.ResponseWriter, r *http.Request) {
|
|
||||||
// if user := auth.GetUser(r.Context()); user != nil && !user.HasRole(auth.RoleApi) {
|
|
||||||
// handleError(fmt.Errorf("missing role: %v", auth.GetRoleString(auth.RoleApi)), http.StatusForbidden, rw)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // IP CHECK HERE (WIP)
|
|
||||||
// // Probably better as private routine
|
|
||||||
// IPAddress := r.Header.Get("X-Real-Ip")
|
|
||||||
// if IPAddress == "" {
|
|
||||||
// IPAddress = r.Header.Get("X-Forwarded-For")
|
|
||||||
// }
|
|
||||||
// if IPAddress == "" {
|
|
||||||
// IPAddress = r.RemoteAddr
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // Also This
|
|
||||||
// ipOk := false
|
|
||||||
// for _, a := range config.Keys.ApiAllowedAddrs {
|
|
||||||
// if a == IPAddress {
|
|
||||||
// ipOk = true
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if IPAddress == "" || ipOk == false {
|
|
||||||
// handleError(fmt.Errorf("unknown ip: %v", IPAddress), http.StatusForbidden, rw)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
// // IP CHECK END
|
|
||||||
//
|
|
||||||
// // Get Values
|
|
||||||
// id := mux.Vars(r)["id"]
|
|
||||||
// newproj := mux.Vars(r)["project"]
|
|
||||||
// newrole := mux.Vars(r)["role"]
|
|
||||||
//
|
|
||||||
// // TODO: Handle anything but roles...
|
|
||||||
// if newrole != "" {
|
|
||||||
// if err := api.Authentication.AddRole(r.Context(), id, newrole); err != nil {
|
|
||||||
// handleError(errors.New(err.Error()), http.StatusUnprocessableEntity, rw)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// rw.Header().Add("Content-Type", "application/json")
|
|
||||||
// rw.WriteHeader(http.StatusOK)
|
|
||||||
// json.NewEncoder(rw).Encode(UpdateUserApiResponse{
|
|
||||||
// Message: fmt.Sprintf("Successfully added role %s to %s", newrole, id),
|
|
||||||
// })
|
|
||||||
//
|
|
||||||
// } else if newproj != "" {
|
|
||||||
// if err := api.Authentication.AddProject(r.Context(), id, newproj); err != nil {
|
|
||||||
// handleError(errors.New(err.Error()), http.StatusUnprocessableEntity, rw)
|
|
||||||
// return
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// rw.Header().Add("Content-Type", "application/json")
|
|
||||||
// rw.WriteHeader(http.StatusOK)
|
|
||||||
// json.NewEncoder(rw).Encode(UpdateUserApiResponse{
|
|
||||||
// Message: fmt.Sprintf("Successfully added project %s to %s", newproj, id),
|
|
||||||
// })
|
|
||||||
//
|
|
||||||
// } else {
|
|
||||||
// handleError(errors.New("Not Add [role|project]?"), http.StatusBadRequest, rw)
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
func (api *RestApi) updateConfiguration(rw http.ResponseWriter, r *http.Request) {
|
func (api *RestApi) updateConfiguration(rw http.ResponseWriter, r *http.Request) {
|
||||||
rw.Header().Set("Content-Type", "text/plain")
|
rw.Header().Set("Content-Type", "text/plain")
|
||||||
key, value := r.FormValue("key"), r.FormValue("value")
|
key, value := r.FormValue("key"), r.FormValue("value")
|
||||||
|
Loading…
Reference in New Issue
Block a user