GRPC: Make ra.FinalizeOrder a pass-through (#5549)

- Move `FinalizeOrder` logic from `grpc/ra-wrappers.go` to `ra` and `wfe`

Fixes #5530
This commit is contained in:
Samantha 2021-08-02 13:52:15 -07:00 committed by GitHub
parent 2a5b9f651a
commit 3480cc5ee9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 12 deletions

View File

@ -75,14 +75,7 @@ func (ras *RegistrationAuthorityClientWrapper) NewOrder(ctx context.Context, req
} }
func (ras *RegistrationAuthorityClientWrapper) FinalizeOrder(ctx context.Context, request *rapb.FinalizeOrderRequest) (*corepb.Order, error) { func (ras *RegistrationAuthorityClientWrapper) FinalizeOrder(ctx context.Context, request *rapb.FinalizeOrderRequest) (*corepb.Order, error) {
resp, err := ras.inner.FinalizeOrder(ctx, request) return ras.inner.FinalizeOrder(ctx, request)
if err != nil {
return nil, err
}
if resp == nil || !orderValid(resp) {
return nil, errIncompleteResponse
}
return resp, nil
} }
// RegistrationAuthorityServerWrapper is the gRPC version of a core.RegistrationAuthority server // RegistrationAuthorityServerWrapper is the gRPC version of a core.RegistrationAuthority server
@ -147,9 +140,5 @@ func (ras *RegistrationAuthorityServerWrapper) NewOrder(ctx context.Context, req
} }
func (ras *RegistrationAuthorityServerWrapper) FinalizeOrder(ctx context.Context, request *rapb.FinalizeOrderRequest) (*corepb.Order, error) { func (ras *RegistrationAuthorityServerWrapper) FinalizeOrder(ctx context.Context, request *rapb.FinalizeOrderRequest) (*corepb.Order, error) {
if request == nil || request.Order == nil || request.Csr == nil {
return nil, errIncompleteRequest
}
return ras.inner.FinalizeOrder(ctx, request) return ras.inner.FinalizeOrder(ctx, request)
} }

View File

@ -980,6 +980,10 @@ func (ra *RegistrationAuthorityImpl) failOrder(
// If successful the order will be returned in processing status for the client // If successful the order will be returned in processing status for the client
// to poll while awaiting finalization to occur. // to poll while awaiting finalization to occur.
func (ra *RegistrationAuthorityImpl) FinalizeOrder(ctx context.Context, req *rapb.FinalizeOrderRequest) (*corepb.Order, error) { func (ra *RegistrationAuthorityImpl) FinalizeOrder(ctx context.Context, req *rapb.FinalizeOrderRequest) (*corepb.Order, error) {
if req == nil || req.Order == nil {
return nil, errIncompleteGRPCRequest
}
order := req.Order order := req.Order
if order.Status != string(core.StatusReady) { if order.Status != string(core.StatusReady) {

View File

@ -2275,6 +2275,11 @@ func (wfe *WebFrontEndImpl) FinalizeOrder(ctx context.Context, logEvent *web.Req
wfe.sendError(response, logEvent, web.ProblemDetailsForError(err, "Error finalizing order"), err) wfe.sendError(response, logEvent, web.ProblemDetailsForError(err, "Error finalizing order"), err)
return return
} }
if updatedOrder == nil || order.Id == 0 || order.Created == 0 || order.RegistrationID == 0 || order.Expires == 0 || len(order.Names) == 0 {
err = errors.New("Incomplete gRPC response message")
wfe.sendError(response, logEvent, web.ProblemDetailsForError(err, "Error validating order"), err)
return
}
orderURL := web.RelativeEndpoint(request, orderURL := web.RelativeEndpoint(request,
fmt.Sprintf("%s%d/%d", orderPath, acct.ID, updatedOrder.Id)) fmt.Sprintf("%s%d/%d", orderPath, acct.ID, updatedOrder.Id))