# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library Public License for more details.
+#
+<<comment Running this script with vstart should be should have these options
+MON=1 OSD=1 MDS=0 MGR=0 RGW=1 ../src/vstart.sh -n -d -o 'rgw_keystone_accepted_admin_roles="admin"
+ rgw_keystone_accepted_roles="admin,Member"
+ rgw_keystone_admin_domain="Default"
+ rgw_keystone_admin_password="ADMIN"
+ rgw_keystone_admin_project="admin"
+ rgw_keystone_admin_user="admin"
+ rgw_keystone_api_version=3
+ rgw_keystone_expired_token_cache_expiration=10
+ rgw_keystone_implicit_tenants=true
+ rgw_keystone_service_token_accepted_roles="admin"
+ rgw_keystone_service_token_enabled=true
+ rgw_keystone_url="http://localhost:5000"
+ rgw_swift_account_in_url=true
+ rgw_swift_enforce_content_length=true
+ rgw_swift_versioning_enabled=true'
+comment
source $CEPH_ROOT/qa/standalone/ceph-helpers.sh
const std::string rgw::auth::RemoteApplier::AuthInfo::NO_SUBUSER;
const std::string rgw::auth::RemoteApplier::AuthInfo::NO_ACCESS_KEY;
+const std::string rgw::auth::RemoteApplier::AuthInfo::NO_KEYSTONE_USER;
/* rgw::auth::RemoteAuthApplier */
ACLOwner rgw::auth::RemoteApplier::get_aclowner() const
if (account) {
entry.account_id = account->id;
}
+ entry.user = info.keystone_user;
}
/* TODO(rzarzynski): we need to handle display_name changes. */
const uint32_t acct_type;
const std::string access_key_id;
const std::string subuser;
+ const std::string keystone_user;
public:
enum class acct_privilege_t {
static const std::string NO_SUBUSER;
static const std::string NO_ACCESS_KEY;
+ static const std::string NO_KEYSTONE_USER;
AuthInfo(const rgw_user& acct_user,
const std::string& acct_name,
const acct_privilege_t level,
const std::string access_key_id,
const std::string subuser,
+ const std::string keystone_user,
const uint32_t acct_type=TYPE_NONE)
: acct_user(acct_user),
acct_name(acct_name),
is_admin(acct_privilege_t::IS_ADMIN_ACCT == level),
acct_type(acct_type),
access_key_id(access_key_id),
- subuser(subuser) {
+ subuser(subuser),
+ keystone_user(keystone_user) {
}
};
level,
rgw::auth::RemoteApplier::AuthInfo::NO_ACCESS_KEY,
rgw::auth::RemoteApplier::AuthInfo::NO_SUBUSER,
+ token.get_user_name(),
TYPE_KEYSTONE
};
}
level,
access_key_id,
rgw::auth::RemoteApplier::AuthInfo::NO_SUBUSER,
+ token.get_user_name(),
TYPE_KEYSTONE
};
}
acct_privilege_t::IS_PLAIN_ACCT,
rgw::auth::RemoteApplier::AuthInfo::NO_ACCESS_KEY,
rgw::auth::RemoteApplier::AuthInfo::NO_SUBUSER,
+ rgw::auth::RemoteApplier::AuthInfo::NO_KEYSTONE_USER,
TYPE_LDAP
};
}
(token.is_admin) ? acct_privilege_t::IS_ADMIN_ACCT: acct_privilege_t::IS_PLAIN_ACCT,
token.access_key_id,
rgw::auth::RemoteApplier::AuthInfo::NO_SUBUSER,
+ rgw::auth::RemoteApplier::AuthInfo::NO_KEYSTONE_USER,
token.acct_type
};
}