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