mirror of
https://github.com/XRPLF/clio.git
synced 2025-11-04 11:55:51 +00:00
@@ -258,7 +258,7 @@ CustomValidator CustomValidators::CurrencyIssueValidator =
|
||||
CustomValidator CustomValidators::CredentialTypeValidator =
|
||||
CustomValidator{[](boost::json::value const& value, std::string_view key) -> MaybeError {
|
||||
if (not value.is_string())
|
||||
return Error{Status{RippledError::rpcINVALID_PARAMS, std::string(key) + " NotString"}};
|
||||
return Error{Status{ClioError::rpcMALFORMED_AUTHORIZED_CREDENTIALS, std::string(key) + " NotString"}};
|
||||
|
||||
auto const& credTypeHex = ripple::strViewUnHex(value.as_string());
|
||||
if (!credTypeHex.has_value())
|
||||
@@ -302,14 +302,18 @@ CustomValidator CustomValidators::AuthorizeCredentialValidator =
|
||||
auto const& obj = credObj.as_object();
|
||||
|
||||
if (!obj.contains("issuer"))
|
||||
return Error{Status{ClioError::rpcMALFORMED_REQUEST, "Field 'Issuer' is required but missing."}};
|
||||
return Error{
|
||||
Status{ClioError::rpcMALFORMED_AUTHORIZED_CREDENTIALS, "Field 'Issuer' is required but missing."}
|
||||
};
|
||||
|
||||
if (auto const err = IssuerValidator.verify(credObj, "issuer"); !err)
|
||||
return err;
|
||||
// don't want to change issuer error message to be about credentials
|
||||
if (!IssuerValidator.verify(credObj, "issuer"))
|
||||
return Error{Status{ClioError::rpcMALFORMED_AUTHORIZED_CREDENTIALS, "issuer NotString"}};
|
||||
|
||||
if (!obj.contains("credential_type")) {
|
||||
return Error{Status{ClioError::rpcMALFORMED_REQUEST, "Field 'CredentialType' is required but missing."}
|
||||
};
|
||||
return Error{Status{
|
||||
ClioError::rpcMALFORMED_AUTHORIZED_CREDENTIALS, "Field 'CredentialType' is required but missing."
|
||||
}};
|
||||
}
|
||||
|
||||
if (auto const err = CredentialTypeValidator.verify(credObj, "credential_type"); !err)
|
||||
|
||||
@@ -292,7 +292,7 @@ generateTestValuesForParametersTest()
|
||||
ACCOUNT,
|
||||
ACCOUNT2
|
||||
),
|
||||
"malformedRequest",
|
||||
"malformedAuthorizedCredentials",
|
||||
"Field 'CredentialType' is required but missing."
|
||||
},
|
||||
|
||||
@@ -312,10 +312,31 @@ generateTestValuesForParametersTest()
|
||||
ACCOUNT,
|
||||
CREDENTIALTYPE
|
||||
),
|
||||
"malformedRequest",
|
||||
"malformedAuthorizedCredentials",
|
||||
"Field 'Issuer' is required but missing."
|
||||
},
|
||||
|
||||
ParamTestCaseBundle{
|
||||
"DepositPreauthAuthorizeCredentialsIncorrectIssuerType",
|
||||
fmt::format(
|
||||
R"({{
|
||||
"deposit_preauth": {{
|
||||
"owner": "{}",
|
||||
"authorized_credentials": [
|
||||
{{
|
||||
"issuer": 123,
|
||||
"credential_type": "{}"
|
||||
}}
|
||||
]
|
||||
}}
|
||||
}})",
|
||||
ACCOUNT,
|
||||
CREDENTIALTYPE
|
||||
),
|
||||
"malformedAuthorizedCredentials",
|
||||
"issuer NotString"
|
||||
},
|
||||
|
||||
ParamTestCaseBundle{
|
||||
"DepositPreauthAuthorizeCredentialsIncorrectCredentialType",
|
||||
fmt::format(
|
||||
@@ -333,7 +354,7 @@ generateTestValuesForParametersTest()
|
||||
ACCOUNT,
|
||||
ACCOUNT2
|
||||
),
|
||||
"invalidParams",
|
||||
"malformedAuthorizedCredentials",
|
||||
"credential_type NotString"
|
||||
},
|
||||
|
||||
|
||||
Reference in New Issue
Block a user