@@ -853,18 +853,25 @@ func (bh *BaseHandler) APIRevokeCertificateHandler(w http.ResponseWriter, r *htt
853853 var (
854854 logger = bh .ContextLogger ("api" )
855855 u = r .Context ().Value ("user" ).(* entity.User )
856- vars = mux .Vars (r )
857856 )
858857
859- ci , err := bh .DBSvc .FindCertInfo ("serial_number = ?" , vars ["sn" ])
858+ var revocationRequest entity.RevocationRequest
859+ err := json .NewDecoder (r .Body ).Decode (& revocationRequest )
860+ if err != nil {
861+ logger .Debugf ("could not decode request body: %s" , err .Error ())
862+ w .WriteHeader (http .StatusBadRequest )
863+ return
864+ }
865+
866+ ci , err := bh .DBSvc .FindCertInfo ("serial_number = ?" , revocationRequest .SerialNumber )
860867 if err != nil {
861868 logger .Debugf ("could not find certinfo: %s" , err .Error ())
862869 w .WriteHeader (http .StatusBadRequest )
863870 return
864871 }
865872
866873 if ci .CreatedForUser != u .ID && ! u .Admin {
867- logger .Debugf ("this is not your certificate" )
874+ logger .Debugf ("This certificate was not issued to the requesting user %d (%s)" , u . ID , u . Username )
868875 w .WriteHeader (http .StatusForbidden )
869876 return
870877 }
@@ -881,7 +888,7 @@ func (bh *BaseHandler) APIRevokeCertificateHandler(w http.ResponseWriter, r *htt
881888 err = bh .DBSvc .UpdateCertInfo (& ci )
882889 if err != nil {
883890 logger .Debugf ("could not update certinfo: %s" , err .Error ())
884- w .WriteHeader (http .StatusBadRequest )
891+ w .WriteHeader (http .StatusInternalServerError )
885892 return
886893 }
887894}
0 commit comments