in sdk/src/model/SetBucketCorsRequest.cc [103:138]
int SetBucketCorsRequest::validate() const
{
int ret = OssBucketRequest::validate();
if (ret) return ret;
if (ruleList_.size() > BucketCorsRuleLimit)
return ARG_ERROR_CORS_RULE_LIMIT;
for (auto const &rule : ruleList_) {
if (rule.AllowedOrigins().empty())
return ARG_ERROR_CORS_ALLOWEDORIGINS_EMPTY;
if (CountOfAsterisk(rule.AllowedOrigins()) > 1)
return ARG_ERROR_CORS_ALLOWEDORIGINS_ASTERISK_COUNT;
if (rule.AllowedMethods().empty())
return ARG_ERROR_CORS_ALLOWEDMETHODS_EMPTY;
if (!InAllowedMethods(rule.AllowedMethods()))
return ARG_ERROR_CORS_ALLOWEDMETHODS_VALUE;
if (CountOfAsterisk(rule.AllowedHeaders()) > 1)
return ARG_ERROR_CORS_ALLOWEDHEADERS_ASTERISK_COUNT;
if (CountOfAsterisk(rule.ExposeHeaders()) > 0)
return ARG_ERROR_CORS_EXPOSEHEADERS_ASTERISK_COUNT;
if ((rule.MaxAgeSeconds() != CORSRule::UNSET_AGE_SEC) &&
(rule.MaxAgeSeconds() < 0 || rule.MaxAgeSeconds() > 999999999)) {
return ARG_ERROR_CORS_MAXAGESECONDS_RANGE;
}
}
return 0;
}