X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fceph%2Fsrc%2Frgw%2Frgw_token.h;fp=src%2Fceph%2Fsrc%2Frgw%2Frgw_token.h;h=0000000000000000000000000000000000000000;hb=7da45d65be36d36b880cc55c5036e96c24b53f00;hp=9235f54b8416bb9f580dab859662ae650e1ffa9f;hpb=691462d09d0987b47e112d6ee8740375df3c51b2;p=stor4nfv.git diff --git a/src/ceph/src/rgw/rgw_token.h b/src/ceph/src/rgw/rgw_token.h deleted file mode 100644 index 9235f54..0000000 --- a/src/ceph/src/rgw/rgw_token.h +++ /dev/null @@ -1,168 +0,0 @@ -// -*- mode:C++; tab-width:8; c-basic-offset:2; indent-tabs-mode:t -*- -// vim: ts=8 sw=2 smarttab -/* - * Ceph - scalable distributed file system - * - * Copyright (C) 2016 Red Hat, Inc - * - * This is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License version 2.1, as published by the Free Software - * Foundation. See file COPYING. - * - */ - -#ifndef RGW_TOKEN_H -#define RGW_TOKEN_H - -#include -#include -#include - -#include "common/ceph_json.h" -#include "common/Formatter.h" -#include "rgw/rgw_b64.h" - -namespace rgw { - - using std::string; - - class RGWToken { - public: - static constexpr auto type_name = "RGW_TOKEN"; - - enum token_type : uint32_t { - TOKEN_NONE, - TOKEN_AD, - TOKEN_KEYSTONE, - TOKEN_LDAP, - }; - - static enum token_type to_type(const string& s) { - if (boost::iequals(s, "ad")) - return TOKEN_AD; - if (boost::iequals(s, "ldap")) - return TOKEN_LDAP; - if (boost::iequals(s, "keystone")) - return TOKEN_KEYSTONE; - return TOKEN_NONE; - } - - static const char* from_type(enum token_type type) { - switch (type) { - case TOKEN_AD: - return "ad"; - break; - case TOKEN_LDAP: - return "ldap"; - break; - case TOKEN_KEYSTONE: - return "keystone"; - break; - default: - return "none"; - }; - } - - token_type type; - string id; - string key; - - virtual uint32_t version() const { return 1; }; - - bool valid() const{ - return ((type != TOKEN_NONE) && - (! id.empty()) && - (! key.empty())); - } - - RGWToken() - : type(TOKEN_NONE) {}; - - RGWToken(enum token_type _type, const std::string& _id, - const std::string& _key) - : type(_type), id(_id), key(_key) {}; - - RGWToken(const string& json) { - JSONParser p; - p.parse(json.c_str(), json.length()); - JSONDecoder::decode_json(RGWToken::type_name, *this, &p); - } - - void encode(bufferlist& bl) const { - uint32_t ver = version(); - string typestr{from_type(type)}; - ENCODE_START(1, 1, bl); - ::encode(type_name, bl); - ::encode(ver, bl); - ::encode(typestr, bl); - ::encode(id, bl); - ::encode(key, bl); - ENCODE_FINISH(bl); - } - - void decode(bufferlist::iterator& bl) { - string name; - string typestr; - uint32_t version; - DECODE_START(1, bl); - ::decode(name, bl); - ::decode(version, bl); - ::decode(typestr, bl); - type = to_type(typestr); - ::decode(id, bl); - ::decode(key, bl); - DECODE_FINISH(bl); - } - - void dump(Formatter* f) const { - ::encode_json("version", uint32_t(version()), f); - ::encode_json("type", from_type(type), f); - ::encode_json("id", id, f); - ::encode_json("key", key, f); - } - - void encode_json(Formatter* f) { - RGWToken& token = *this; - f->open_object_section(type_name); - ::encode_json(type_name, token, f); - f->close_section(); - } - - void decode_json(JSONObj* obj) { - uint32_t version; - string type_name; - string typestr; - JSONDecoder::decode_json("version", version, obj); - JSONDecoder::decode_json("type", typestr, obj); - type = to_type(typestr); - JSONDecoder::decode_json("id", id, obj); - JSONDecoder::decode_json("key", key, obj); - } - - std::string encode_json_base64(Formatter* f) { - encode_json(f); - std::ostringstream os; - f->flush(os); - return to_base64(std::move(os.str())); - } - - friend inline ostream& operator<<(ostream& os, const RGWToken& token); - - virtual ~RGWToken() {}; - }; - WRITE_CLASS_ENCODER(RGWToken) - - inline ostream& operator<<(ostream& os, const RGWToken& token) - { - os << "<>"; - return os; - } - -} /* namespace rgw */ - -#endif /* RGW_TOKEN_H */