]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rgw/auth: Add get_service_token to TokenExtractor
authorTobias Urdin <tobias.urdin@binero.se>
Tue, 15 Mar 2022 09:31:43 +0000 (09:31 +0000)
committerTobias Urdin <tobias.urdin@binero.se>
Wed, 21 Sep 2022 20:33:29 +0000 (20:33 +0000)
Signed-off-by: Tobias Urdin <tobias.urdin@binero.com>
src/rgw/rgw_auth.h
src/rgw/rgw_rest_sts.h
src/rgw/rgw_swift_auth.h

index f14066592afeedc47697a29d31482a1f77ceeaa2..26151a7e8ca1e9c5d7123e20235adf73a7a357d2 100644 (file)
@@ -308,6 +308,7 @@ class TokenExtractor {
 public:
   virtual ~TokenExtractor() = default;
   virtual std::string get_token(const req_state* s) const = 0;
+  virtual std::string get_service_token(const req_state* s) const = 0;
 };
 
 
index a129074b48e94b12e611293f03e624c6bd8b0472..994296f574cba368cdbdb5313ffe6ab21f4468ef 100644 (file)
@@ -97,6 +97,12 @@ class DefaultStrategy : public rgw::auth::Strategy,
     return s->info.args.get("WebIdentityToken");
   }
 
+  /* The method implements TokenExtractor. This method is not used by STS. */
+  std::string get_service_token(const req_state* const s) const override {
+    static std::string empty_val;
+    return empty_val;
+  }
+
   aplptr_t create_apl_web_identity( CephContext* cct,
                                     const req_state* s,
                                     const std::string& role_session,
index 25bc3e3dd823f141d1fb1b9c420452b59f03fc88..596ec1941407dd5abca2bb79aa95cac92cc20033 100644 (file)
@@ -208,6 +208,11 @@ class DefaultStrategy : public rgw::auth::Strategy,
     return s->info.env->get("HTTP_X_AUTH_TOKEN", "");
   }
 
+  /* The method implements TokenExtractor for X-Service-Token present in req_state. */
+  std::string get_service_token(const req_state* const s) const override {
+    return s->info.env->get("HTTP_X_SERVICE_TOKEN", "");
+  }
+
   aplptr_t create_apl_remote(CephContext* const cct,
                              const req_state* const s,
                              acl_strategy_t&& extra_acl_strategy,