From: Radoslaw Zarzynski Date: Tue, 16 Feb 2016 11:16:02 +0000 (+0100) Subject: rgw: support system requests over Swift API. X-Git-Tag: v10.1.0~364^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=52b7f1d69618f764dbff5b6bd3bc89965e1c55f5;p=ceph.git rgw: support system requests over Swift API. Signed-off-by: Radoslaw Zarzynski --- diff --git a/src/rgw/rgw_rest_swift.cc b/src/rgw/rgw_rest_swift.cc index dda1f173a878..0df6200fc107 100644 --- a/src/rgw/rgw_rest_swift.cc +++ b/src/rgw/rgw_rest_swift.cc @@ -1298,6 +1298,25 @@ int RGWHandler_REST_SWIFT::authorize() if (!authorized) return -EPERM; + if (s->user->system) { + s->system_request = true; + ldout(s->cct, 20) << "system request over Swift API" << dendl; + + rgw_user euid(s->info.args.sys_get(RGW_SYS_PARAM_PREFIX "uid")); + if (!euid.empty()) { + RGWUserInfo einfo; + + const int ret = rgw_get_user_info_by_uid(store, euid, einfo); + if (ret < 0) { + ldout(s->cct, 0) << "User lookup failed, euid=" << euid + << " ret=" << ret << dendl; + return -ENOENT; + } + + *(s->user) = einfo; + } + } + return 0; }