}
int parse_credentials(const req_info& info, /* in */
- std::string& credential, /* out */
+ std::string& access_key_id, /* out */
+ std::string& credential_scope, /* out */
std::string& signedheaders, /* out */
std::string& signature, /* out */
std::string& date, /* out */
bool& using_qs) /* out */
{
- int ret;
const char* const http_auth = info.env->get("HTTP_AUTHORIZATION");
-
using_qs = http_auth == nullptr || http_auth[0] == '\0';
+
+ int ret;
+ std::string credential;
if (using_qs) {
ret = parse_v4_credentials_qs(info, credential, signedheaders,
signature, date);
return -EINVAL;
}
+ /* grab access key id */
+ const size_t pos = credential.find("/");
+ access_key_id = credential.substr(0, pos);
+ dout(10) << "access key id = " << access_key_id << dendl;
+
+ /* grab credential scope */
+ credential_scope = credential.substr(pos + 1);
+ dout(10) << "credential scope = " << credential_scope << dendl;
+
return 0;
}
int parse_credentials(const req_info& info, /* in */
- std::string& credential, /* out */
+ std::string& access_key_id, /* out */
+ std::string& credential_scope, /* out */
std::string& signedheaders, /* out */
std::string& signature, /* out */
std::string& date, /* out */
return -ENOMEM;
}
- std::string credential;
+ std::string access_key_id;
std::string signed_hdrs;
std::string client_signature;
int ret = rgw::auth::s3::parse_credentials(s->info,
- credential,
+ access_key_id,
+ s->aws4_auth->credential_scope,
signed_hdrs,
client_signature,
s->aws4_auth->date,
return ret;
}
- /* grab access key id */
-
- pos = credential.find("/");
- const std::string access_key_id = credential.substr(0, pos);
-
- dout(10) << "access key id = " << access_key_id << dendl;
-
- /* grab credential scope */
-
- s->aws4_auth->credential_scope = credential.substr(pos + 1);
-
- dout(10) << "credential scope = " << s->aws4_auth->credential_scope << dendl;
-
/* grab user information */
if (rgw_get_user_info_by_access_key(store, access_key_id, *s->user) < 0) {