diff --git a/api/read/read.go b/api/read/read.go index 2f7348bd..9c5ebd07 100644 --- a/api/read/read.go +++ b/api/read/read.go @@ -6,6 +6,7 @@ import ( "errors" "io" "net/http" + "strings" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" @@ -33,7 +34,9 @@ func ProtoJSON(r io.Reader, m proto.Message) error { switch err := protojson.Unmarshal(data, m); { case errors.Is(err, proto.Error): - return badProtoJSONError(err.Error()) + // trim the proto prefix for the message + s := strings.TrimSpace(strings.TrimPrefix(err.Error(), "proto:")) + return badProtoJSONError(s) default: return err } diff --git a/authority/admin/api/policy_test.go b/authority/admin/api/policy_test.go index fffa84f7..d0c97729 100644 --- a/authority/admin/api/policy_test.go +++ b/authority/admin/api/policy_test.go @@ -376,7 +376,7 @@ func TestPolicyAdminResponder_CreateAuthorityPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } @@ -634,7 +634,7 @@ func TestPolicyAdminResponder_UpdateAuthorityPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } @@ -1081,7 +1081,7 @@ func TestPolicyAdminResponder_CreateProvisionerPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } @@ -1292,7 +1292,7 @@ func TestPolicyAdminResponder_UpdateProvisionerPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } @@ -1694,7 +1694,7 @@ func TestPolicyAdminResponder_CreateACMEAccountPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } @@ -1880,7 +1880,7 @@ func TestPolicyAdminResponder_UpdateACMEAccountPolicy(t *testing.T) { // a syntax error (in the tests). If the message doesn't start with "proto", // we expect a full string match. if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(ae.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, ae.Message) } diff --git a/authority/admin/api/provisioner_test.go b/authority/admin/api/provisioner_test.go index de7c3646..486b6cda 100644 --- a/authority/admin/api/provisioner_test.go +++ b/authority/admin/api/provisioner_test.go @@ -430,7 +430,7 @@ func TestHandler_CreateProvisioner(t *testing.T) { assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"]) if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(adminErr.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, adminErr.Message) } @@ -1087,7 +1087,7 @@ func TestHandler_UpdateProvisioner(t *testing.T) { assert.Equals(t, []string{"application/json"}, res.Header["Content-Type"]) if strings.HasPrefix(tc.err.Message, "proto:") { - assert.True(t, strings.Contains(tc.err.Message, "syntax error")) + assert.True(t, strings.Contains(adminErr.Message, "syntax error")) } else { assert.Equals(t, tc.err.Message, adminErr.Message) }