This commit is contained in:
2026-07-28 21:17:29 -05:00
parent 555aae0ab2
commit 444dc140b2
2 changed files with 43 additions and 2 deletions
+8 -2
View File
@@ -61,11 +61,17 @@ func (s *Server) handleExchange(w http.ResponseWriter, r *http.Request) {
request.RequestedAction = strings.TrimSpace(request.RequestedAction)
request.RequestedPackage = strings.TrimSpace(request.RequestedPackage)
request.InstallationID = strings.TrimSpace(request.InstallationID)
if request.Code == "" || len(request.HostFingerprint) < 16 ||
if len(request.HostFingerprint) < 16 ||
request.Hostname == "" || len(request.Hostname) > 255 ||
(request.RequestedAction != "" && !validSlug(request.RequestedAction)) ||
(request.RequestedPackage != "" && !validSlug(request.RequestedPackage)) {
writeJSON(w, http.StatusBadRequest, map[string]string{"error": "code and host identity are required"})
writeJSON(w, http.StatusBadRequest, map[string]string{"error": "valid host identity is required"})
return
}
if !validDeploymentCodeFormat(request.Code) {
_ = s.audit(r.Context(), "code_exchange_failed", "", nil,
request.Hostname, "", sourceIP, codeExchangeFailureDetails(request.Code, errCodeNotFound))
writeJSON(w, http.StatusForbidden, map[string]string{"error": "authorization is invalid"})
return
}