MCPcopy Create free account
hub / github.com/evcc-io/evcc / requireCriticalConfigAuth

Function requireCriticalConfigAuth

server/http_auth.go:246–258  ·  view source on GitHub ↗

requireCriticalConfigAuth guards script-plugin configs: API key passes; session users must supply the admin password.

(w http.ResponseWriter, r *http.Request, authObject auth.Auth, req configReq)

Source from the content-addressed store, hash-verified

244
245// requireCriticalConfigAuth guards script-plugin configs: API key passes; session users must supply the admin password.
246func requireCriticalConfigAuth(w http.ResponseWriter, r *http.Request, authObject auth.Auth, req configReq) bool {
247 if authObject.GetAuthMode() == auth.Disabled || !configHasCriticalPlugin(req) {
248 return true
249 }
250 if key := apiKeyFromRequest(r); key != "" && authObject.ValidateApiKey(key) {
251 return true
252 }
253 if !authObject.IsAdminPasswordValid(r.Header.Get("X-Admin-Password")) {
254 jsonError(w, http.StatusPreconditionRequired, errors.New("admin password required"))
255 return false
256 }
257 return true
258}
259
260// ensureDbAuth guards /db/ endpoints: API key Bearer passes directly;
261// session users must also supply the admin password in X-Admin-Password header.

Callers 5

settingsSetYamlHandlerFunction · 0.85
newDeviceHandlerFunction · 0.85
updateDeviceHandlerFunction · 0.85
testConfigHandlerFunction · 0.85

Calls 8

configHasCriticalPluginFunction · 0.85
apiKeyFromRequestFunction · 0.85
jsonErrorFunction · 0.70
GetAuthModeMethod · 0.65
ValidateApiKeyMethod · 0.65
IsAdminPasswordValidMethod · 0.65
GetMethod · 0.65
NewMethod · 0.65

Tested by 1