RA: Make NewOrder wrapper passthrough (#5486)

Fixes: #5436
This commit is contained in:
Andrew Gabbitas 2021-06-16 12:41:05 -06:00 committed by GitHub
parent 923aef5839
commit 74909367cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 11 additions and 15 deletions

View File

@ -111,14 +111,7 @@ func (rac RegistrationAuthorityClientWrapper) AdministrativelyRevokeCertificate(
} }
func (ras *RegistrationAuthorityClientWrapper) NewOrder(ctx context.Context, request *rapb.NewOrderRequest) (*corepb.Order, error) { func (ras *RegistrationAuthorityClientWrapper) NewOrder(ctx context.Context, request *rapb.NewOrderRequest) (*corepb.Order, error) {
resp, err := ras.inner.NewOrder(ctx, request) return ras.inner.NewOrder(ctx, request)
if err != nil {
return nil, err
}
if resp == nil || !orderValid(resp) {
return nil, errIncompleteResponse
}
return resp, nil
} }
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) {
@ -237,9 +230,6 @@ func (ras *RegistrationAuthorityServerWrapper) AdministrativelyRevokeCertificate
} }
func (ras *RegistrationAuthorityServerWrapper) NewOrder(ctx context.Context, request *rapb.NewOrderRequest) (*corepb.Order, error) { 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) return ras.inner.NewOrder(ctx, request)
} }

View File

@ -1959,6 +1959,10 @@ func (ra *RegistrationAuthorityImpl) checkOrderNames(names []string) error {
// NewOrder creates a new order object // NewOrder creates a new order object
func (ra *RegistrationAuthorityImpl) NewOrder(ctx context.Context, req *rapb.NewOrderRequest) (*corepb.Order, error) { 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{ order := &corepb.Order{
RegistrationID: req.RegistrationID, RegistrationID: req.RegistrationID,
Names: core.UniqueLowerNames(req.Names), Names: core.UniqueLowerNames(req.Names),

View File

@ -3878,6 +3878,7 @@ func TestNewOrderMaxNames(t *testing.T) {
ra.maxNames = 2 ra.maxNames = 2
_, err := ra.NewOrder(context.Background(), &rapb.NewOrderRequest{ _, err := ra.NewOrder(context.Background(), &rapb.NewOrderRequest{
RegistrationID: 1,
Names: []string{ Names: []string{
"a", "a",
"b", "b",

View File

@ -2071,7 +2071,7 @@ func (wfe *WebFrontEndImpl) NewOrder(
RegistrationID: acct.ID, RegistrationID: acct.ID,
Names: names, 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) wfe.sendError(response, logEvent, web.ProblemDetailsForError(err, "Error creating new order"), err)
return return
} }

View File

@ -261,7 +261,8 @@ func (ra *MockRegistrationAuthority) NewOrder(ctx context.Context, req *rapb.New
return &corepb.Order{ return &corepb.Order{
Id: 1, Id: 1,
RegistrationID: req.RegistrationID, 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, Names: req.Names,
Status: string(core.StatusPending), Status: string(core.StatusPending),
V2Authorizations: []int64{1}, V2Authorizations: []int64{1},
@ -2477,7 +2478,7 @@ func TestNewOrder(t *testing.T) {
ExpectedBody: ` ExpectedBody: `
{ {
"status": "pending", "status": "pending",
"expires": "1970-01-01T00:00:00Z", "expires": "2021-02-01T01:01:01Z",
"identifiers": [ "identifiers": [
{ "type": "dns", "value": "thisreallylongexampledomainisabytelongerthanthemaxcnbytelimit.com"}, { "type": "dns", "value": "thisreallylongexampledomainisabytelongerthanthemaxcnbytelimit.com"},
{ "type": "dns", "value": "not-example.com"} { "type": "dns", "value": "not-example.com"}
@ -2494,7 +2495,7 @@ func TestNewOrder(t *testing.T) {
ExpectedBody: ` ExpectedBody: `
{ {
"status": "pending", "status": "pending",
"expires": "1970-01-01T00:00:00Z", "expires": "2021-02-01T01:01:01Z",
"identifiers": [ "identifiers": [
{ "type": "dns", "value": "not-example.com"}, { "type": "dns", "value": "not-example.com"},
{ "type": "dns", "value": "www.not-example.com"} { "type": "dns", "value": "www.not-example.com"}