diff --git a/grpc/ra-wrappers.go b/grpc/ra-wrappers.go index 832371271..15dcb76d1 100644 --- a/grpc/ra-wrappers.go +++ b/grpc/ra-wrappers.go @@ -111,14 +111,7 @@ func (rac RegistrationAuthorityClientWrapper) AdministrativelyRevokeCertificate( } func (ras *RegistrationAuthorityClientWrapper) NewOrder(ctx context.Context, request *rapb.NewOrderRequest) (*corepb.Order, error) { - resp, err := ras.inner.NewOrder(ctx, request) - if err != nil { - return nil, err - } - if resp == nil || !orderValid(resp) { - return nil, errIncompleteResponse - } - return resp, nil + return ras.inner.NewOrder(ctx, request) } func (ras *RegistrationAuthorityClientWrapper) FinalizeOrder(ctx context.Context, request *rapb.FinalizeOrderRequest) (*corepb.Order, error) { @@ -237,9 +230,6 @@ func (ras *RegistrationAuthorityServerWrapper) AdministrativelyRevokeCertificate } func (ras *RegistrationAuthorityServerWrapper) NewOrder(ctx context.Context, request *rapb.NewOrderRequest) (*corepb.Order, error) { - if request == nil || request.RegistrationID == 0 { - return nil, errIncompleteRequest - } return ras.inner.NewOrder(ctx, request) } diff --git a/ra/ra.go b/ra/ra.go index 6aac3aefa..58fa25ca8 100644 --- a/ra/ra.go +++ b/ra/ra.go @@ -1959,6 +1959,10 @@ func (ra *RegistrationAuthorityImpl) checkOrderNames(names []string) error { // NewOrder creates a new order object func (ra *RegistrationAuthorityImpl) NewOrder(ctx context.Context, req *rapb.NewOrderRequest) (*corepb.Order, error) { + if req == nil || req.RegistrationID == 0 { + return nil, errIncompleteGRPCRequest + } + order := &corepb.Order{ RegistrationID: req.RegistrationID, Names: core.UniqueLowerNames(req.Names), diff --git a/ra/ra_test.go b/ra/ra_test.go index b9999b0a7..253f85244 100644 --- a/ra/ra_test.go +++ b/ra/ra_test.go @@ -3878,6 +3878,7 @@ func TestNewOrderMaxNames(t *testing.T) { ra.maxNames = 2 _, err := ra.NewOrder(context.Background(), &rapb.NewOrderRequest{ + RegistrationID: 1, Names: []string{ "a", "b", diff --git a/wfe2/wfe.go b/wfe2/wfe.go index bddcdeca5..56f986cc4 100644 --- a/wfe2/wfe.go +++ b/wfe2/wfe.go @@ -2071,7 +2071,7 @@ func (wfe *WebFrontEndImpl) NewOrder( RegistrationID: acct.ID, Names: names, }) - if err != nil { + if err != nil || order == nil || order.Id == 0 || order.Created == 0 || order.RegistrationID == 0 || order.Expires == 0 || len(order.Names) == 0 { wfe.sendError(response, logEvent, web.ProblemDetailsForError(err, "Error creating new order"), err) return } diff --git a/wfe2/wfe_test.go b/wfe2/wfe_test.go index b2c409ab7..f675fcc05 100644 --- a/wfe2/wfe_test.go +++ b/wfe2/wfe_test.go @@ -261,7 +261,8 @@ func (ra *MockRegistrationAuthority) NewOrder(ctx context.Context, req *rapb.New return &corepb.Order{ Id: 1, RegistrationID: req.RegistrationID, - Expires: 0, + Created: time.Date(2021, 1, 1, 1, 1, 1, 0, time.UTC).UnixNano(), + Expires: time.Date(2021, 2, 1, 1, 1, 1, 0, time.UTC).UnixNano(), Names: req.Names, Status: string(core.StatusPending), V2Authorizations: []int64{1}, @@ -2477,7 +2478,7 @@ func TestNewOrder(t *testing.T) { ExpectedBody: ` { "status": "pending", - "expires": "1970-01-01T00:00:00Z", + "expires": "2021-02-01T01:01:01Z", "identifiers": [ { "type": "dns", "value": "thisreallylongexampledomainisabytelongerthanthemaxcnbytelimit.com"}, { "type": "dns", "value": "not-example.com"} @@ -2494,7 +2495,7 @@ func TestNewOrder(t *testing.T) { ExpectedBody: ` { "status": "pending", - "expires": "1970-01-01T00:00:00Z", + "expires": "2021-02-01T01:01:01Z", "identifiers": [ { "type": "dns", "value": "not-example.com"}, { "type": "dns", "value": "www.not-example.com"}