summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoralexbogo <[email protected]>2023-04-04 10:52:56 +0300
committeralexbogo <[email protected]>2023-04-04 10:52:56 +0300
commit3252a2ccdda0f3fa0314aadf286d22d656bfdb9e (patch)
treebd15cb35c30a4a561ae61919332801d4e8e7239f
parent268a9f9f89710a2c3272b1e61641b86c505c56f5 (diff)
[ymq] extend auth proto: add folder_id and userSID
init init_proto
-rw-r--r--ydb/core/protos/sqs.proto4
-rw-r--r--ydb/core/ymq/actor/action.h56
-rw-r--r--ydb/core/ymq/actor/change_visibility.cpp9
-rw-r--r--ydb/core/ymq/actor/count_queues.cpp4
-rw-r--r--ydb/core/ymq/actor/create_queue.cpp5
-rw-r--r--ydb/core/ymq/actor/create_user.cpp4
-rw-r--r--ydb/core/ymq/actor/delete_message.cpp9
-rw-r--r--ydb/core/ymq/actor/delete_queue.cpp12
-rw-r--r--ydb/core/ymq/actor/delete_user.cpp4
-rw-r--r--ydb/core/ymq/actor/get_queue_attributes.cpp10
-rw-r--r--ydb/core/ymq/actor/get_queue_url.cpp4
-rw-r--r--ydb/core/ymq/actor/list_dead_letter_source_queues.cpp4
-rw-r--r--ydb/core/ymq/actor/list_permissions.cpp2
-rw-r--r--ydb/core/ymq/actor/list_queues.cpp4
-rw-r--r--ydb/core/ymq/actor/list_users.cpp4
-rw-r--r--ydb/core/ymq/actor/modify_permissions.cpp2
-rw-r--r--ydb/core/ymq/actor/proxy_actor.cpp34
-rw-r--r--ydb/core/ymq/actor/proxy_actor.h1
-rw-r--r--ydb/core/ymq/actor/purge_queue.cpp10
-rw-r--r--ydb/core/ymq/actor/receive_message.cpp4
-rw-r--r--ydb/core/ymq/actor/send_message.cpp9
-rw-r--r--ydb/core/ymq/actor/set_queue_attributes.cpp5
-rw-r--r--ydb/core/ymq/base/action.h27
-rw-r--r--ydb/core/ymq/base/security.h8
24 files changed, 84 insertions, 151 deletions
diff --git a/ydb/core/protos/sqs.proto b/ydb/core/protos/sqs.proto
index 89281bf3156..4b661368fa1 100644
--- a/ydb/core/protos/sqs.proto
+++ b/ydb/core/protos/sqs.proto
@@ -1,7 +1,9 @@
package NKikimr.NSQS;
message TAuthentification {
- optional string UserName = 1;
+ optional string UserName = 1; // Account or CloudId
+ optional string FolderId = 2; // Cloud only
+ optional string UserSID = 3;
}
message TCredentials {
diff --git a/ydb/core/ymq/actor/action.h b/ydb/core/ymq/actor/action.h
index b0afce5b2cf..6eedff16304 100644
--- a/ydb/core/ymq/actor/action.h
+++ b/ydb/core/ymq/actor/action.h
@@ -69,20 +69,6 @@ public:
return true;
}
- void DoCloudBootstrap() {
- if (!SecurityToken_) {
- // TODO: use access service
- MakeError(MutableErrorDesc(), NErrors::INVALID_CLIENT_TOKEN_ID, "Failed to parse cloud id.");
- SendReplyAndDie();
- return;
- }
-
- auto items = ParseCloudSecurityToken(SecurityToken_);
- UserName_ = std::get<0>(items);
- FolderId_ = std::get<1>(items);
- UserSID_ = std::get<2>(items);
- }
-
void DoBootstrap() {
ui64 configurationFlags = 0;
if (TDerived::NeedQueueAttributes()) {
@@ -122,7 +108,16 @@ public:
DoBootstrap();
}
- void Bootstrap(const NActors::TActorContext&) {
+ void Bootstrap(const NActors::TActorContext&) {
+ #define SQS_REQUEST_CASE(action) \
+ const auto& request = SourceSqsRequest_.Y_CAT(Get, action)(); \
+ auto response = Response_.Y_CAT(Mutable, action)(); \
+ FillAuthInformation(request); \
+ response->SetRequestId(RequestId_);
+
+ SQS_SWITCH_REQUEST_CUSTOM(SourceSqsRequest_, ENUMERATE_ALL_ACTIONS, Y_VERIFY(false));
+ #undef SQS_REQUEST_CASE
+
RLOG_SQS_DEBUG("Request started. Actor: " << this->SelfId()); // log new request id
StartTs_ = TActivationContext::Now();
@@ -136,7 +131,11 @@ public:
}
if (IsCloud()) {
- DoCloudBootstrap();
+ if (!FolderId_) {
+ MakeError(MutableErrorDesc(), NErrors::INVALID_CLIENT_TOKEN_ID, "Failed to parse cloud_id/folder_id.");
+ SendReplyAndDie();
+ return;
+ }
if (TDerived::CreateMissingAccount()) {
CreateAccountOnTheFly();
@@ -149,16 +148,6 @@ public:
}
protected:
- template<typename TReq>
- void CopySecurityToken(const TReq& request) {
- SecurityToken_ = ExtractSecurityToken<TReq, TCredentials>(request);
- }
-
- template<typename TReq>
- void CopyAccountName(const TReq& request) {
- UserName_ = request.GetAuth().GetUserName();
- }
-
virtual void DoAction() = 0;
virtual TError* MutableErrorDesc() = 0;
@@ -536,6 +525,21 @@ private:
}
}
+ template<class TReq>
+ void FillAuthInformation(const TReq& request) {
+ SecurityToken_ = ExtractSecurityToken(request);
+ UserName_ = request.GetAuth().GetUserName();
+ FolderId_ = request.GetAuth().GetFolderId();
+ UserSID_ = request.GetAuth().GetUserSID();
+
+ if (IsCloud() && !FolderId_) {
+ auto items = ParseCloudSecurityToken(SecurityToken_);
+ UserName_ = std::get<0>(items);
+ FolderId_ = std::get<1>(items);
+ UserSID_ = std::get<2>(items);
+ }
+ }
+
TString GetActionACLSourcePath() const {
const EACLSourceType aclSourceType = GetActionACLSourceType(ToString(Action_));
switch (aclSourceType) {
diff --git a/ydb/core/ymq/actor/change_visibility.cpp b/ydb/core/ymq/actor/change_visibility.cpp
index 5c3140bcc8b..6e0ba55c543 100644
--- a/ydb/core/ymq/actor/change_visibility.cpp
+++ b/ydb/core/ymq/actor/change_visibility.cpp
@@ -22,15 +22,6 @@ public:
: TActionActor(sourceSqsRequest, isBatch ? EAction::ChangeMessageVisibilityBatch : EAction::ChangeMessageVisibility, std::move(cb))
, IsBatch_(isBatch)
{
- if (IsBatch_) {
- CopyAccountName(BatchRequest());
- Response_.MutableChangeMessageVisibilityBatch()->SetRequestId(RequestId_);
- CopySecurityToken(BatchRequest());
- } else {
- CopyAccountName(Request());
- Response_.MutableChangeMessageVisibility()->SetRequestId(RequestId_);
- CopySecurityToken(Request());
- }
}
protected:
diff --git a/ydb/core/ymq/actor/count_queues.cpp b/ydb/core/ymq/actor/count_queues.cpp
index 8f217a192ac..2ef2c4e4dc5 100644
--- a/ydb/core/ymq/actor/count_queues.cpp
+++ b/ydb/core/ymq/actor/count_queues.cpp
@@ -26,10 +26,6 @@ public:
TCountQueuesActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::CountQueues, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableCountQueues()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/create_queue.cpp b/ydb/core/ymq/actor/create_queue.cpp
index c5311ffd345..0b1ad4e59a7 100644
--- a/ydb/core/ymq/actor/create_queue.cpp
+++ b/ydb/core/ymq/actor/create_queue.cpp
@@ -27,11 +27,8 @@ public:
TCreateQueueActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::CreateQueue, std::move(cb))
{
- CopyAccountName(Request()); // will be replaced during bootstrap for cloud mode
- Response_.MutableCreateQueue()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
+
protected:
bool IsFifoQueue() const override {
const TString& name = Request().GetCustomQueueName() ? Request().GetCustomQueueName() : Request().GetQueueName();
diff --git a/ydb/core/ymq/actor/create_user.cpp b/ydb/core/ymq/actor/create_user.cpp
index deebfc54e8a..713e5ea65db 100644
--- a/ydb/core/ymq/actor/create_user.cpp
+++ b/ydb/core/ymq/actor/create_user.cpp
@@ -17,10 +17,6 @@ public:
TCreateUserActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::CreateUser, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableCreateUser()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/delete_message.cpp b/ydb/core/ymq/actor/delete_message.cpp
index 50b59ddcfb0..f3ed9b7d6ad 100644
--- a/ydb/core/ymq/actor/delete_message.cpp
+++ b/ydb/core/ymq/actor/delete_message.cpp
@@ -23,15 +23,6 @@ public:
: TActionActor(sourceSqsRequest, isBatch ? EAction::DeleteMessageBatch : EAction::DeleteMessage, std::move(cb))
, IsBatch_(isBatch)
{
- if (IsBatch_) {
- CopyAccountName(BatchRequest());
- Response_.MutableDeleteMessageBatch()->SetRequestId(RequestId_);
- CopySecurityToken(BatchRequest());
- } else {
- CopyAccountName(Request());
- Response_.MutableDeleteMessage()->SetRequestId(RequestId_);
- CopySecurityToken(Request());
- }
}
bool DoValidate() override {
diff --git a/ydb/core/ymq/actor/delete_queue.cpp b/ydb/core/ymq/actor/delete_queue.cpp
index 5ac4b894360..b9f0b5c4878 100644
--- a/ydb/core/ymq/actor/delete_queue.cpp
+++ b/ydb/core/ymq/actor/delete_queue.cpp
@@ -14,11 +14,7 @@ public:
TDeleteQueueActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::DeleteQueue, std::move(cb))
{
- UserName_ = Request().GetAuth().GetUserName();
- Response_.MutableDeleteQueue()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
- }
+ }
private:
bool DoValidate() override {
@@ -93,10 +89,6 @@ public:
TDeleteQueueBatchActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TCommonBatchActor(sourceSqsRequest, EAction::DeleteQueueBatch, std::move(cb))
{
- UserName_ = Request().GetAuth().GetUserName();
- Response_.MutableDeleteQueueBatch()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
@@ -106,7 +98,7 @@ private:
for (size_t i = 0; i < Request().EntriesSize(); ++i) {
const auto& entry = Request().GetEntries(i);
auto& req = *ret[i].MutableDeleteQueue();
- req.MutableAuth()->SetUserName(UserName_);
+ *req.MutableAuth() = Request().GetAuth();
if (Request().HasCredentials()) {
*req.MutableCredentials() = Request().GetCredentials();
diff --git a/ydb/core/ymq/actor/delete_user.cpp b/ydb/core/ymq/actor/delete_user.cpp
index 1b59a647ffb..9176d0bb589 100644
--- a/ydb/core/ymq/actor/delete_user.cpp
+++ b/ydb/core/ymq/actor/delete_user.cpp
@@ -23,10 +23,6 @@ public:
TDeleteUserActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::DeleteUser, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableDeleteUser()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/get_queue_attributes.cpp b/ydb/core/ymq/actor/get_queue_attributes.cpp
index 7f15e3cecad..c9f7ec3084e 100644
--- a/ydb/core/ymq/actor/get_queue_attributes.cpp
+++ b/ydb/core/ymq/actor/get_queue_attributes.cpp
@@ -48,10 +48,6 @@ public:
TGetQueueAttributesActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::GetQueueAttributes, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableGetQueueAttributes()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
@@ -297,10 +293,6 @@ public:
TGetQueueAttributesBatchActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TCommonBatchActor(sourceSqsRequest, EAction::GetQueueAttributesBatch, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableGetQueueAttributesBatch()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
@@ -310,7 +302,7 @@ private:
for (size_t i = 0; i < Request().EntriesSize(); ++i) {
const auto& entry = Request().GetEntries(i);
auto& req = *ret[i].MutableGetQueueAttributes();
- req.MutableAuth()->SetUserName(UserName_);
+ *req.MutableAuth() = Request().GetAuth();
if (Request().HasCredentials()) {
*req.MutableCredentials() = Request().GetCredentials();
diff --git a/ydb/core/ymq/actor/get_queue_url.cpp b/ydb/core/ymq/actor/get_queue_url.cpp
index 95554d7bb0f..4d0861629e0 100644
--- a/ydb/core/ymq/actor/get_queue_url.cpp
+++ b/ydb/core/ymq/actor/get_queue_url.cpp
@@ -21,10 +21,6 @@ public:
TGetQueueUrlActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::GetQueueUrl, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableGetQueueUrl()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
static constexpr bool NeedExistingQueue() {
diff --git a/ydb/core/ymq/actor/list_dead_letter_source_queues.cpp b/ydb/core/ymq/actor/list_dead_letter_source_queues.cpp
index fd4866fd49f..229633e042d 100644
--- a/ydb/core/ymq/actor/list_dead_letter_source_queues.cpp
+++ b/ydb/core/ymq/actor/list_dead_letter_source_queues.cpp
@@ -21,10 +21,6 @@ public:
TListDeadLetterSourceQueuesActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ListDeadLetterSourceQueues, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableListDeadLetterSourceQueues()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
static constexpr bool NeedExistingQueue() {
diff --git a/ydb/core/ymq/actor/list_permissions.cpp b/ydb/core/ymq/actor/list_permissions.cpp
index 93a15e1dbf2..64280db3391 100644
--- a/ydb/core/ymq/actor/list_permissions.cpp
+++ b/ydb/core/ymq/actor/list_permissions.cpp
@@ -18,8 +18,6 @@ public:
TListPermissionsActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ListPermissions, std::move(cb))
{
- Response_.MutableListPermissions()->SetRequestId(RequestId_);
- CopySecurityToken(Request());
}
static constexpr bool NeedExistingQueue() {
diff --git a/ydb/core/ymq/actor/list_queues.cpp b/ydb/core/ymq/actor/list_queues.cpp
index 25ae1083764..0ef07d82f39 100644
--- a/ydb/core/ymq/actor/list_queues.cpp
+++ b/ydb/core/ymq/actor/list_queues.cpp
@@ -26,10 +26,6 @@ public:
TListQueuesActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ListQueues, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableListQueues()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/list_users.cpp b/ydb/core/ymq/actor/list_users.cpp
index d653fc20a38..3f3f82412c9 100644
--- a/ydb/core/ymq/actor/list_users.cpp
+++ b/ydb/core/ymq/actor/list_users.cpp
@@ -22,10 +22,6 @@ public:
TListUsersActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ListUsers, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableListUsers()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/modify_permissions.cpp b/ydb/core/ymq/actor/modify_permissions.cpp
index 8b9e1cb2d7d..a6146e588aa 100644
--- a/ydb/core/ymq/actor/modify_permissions.cpp
+++ b/ydb/core/ymq/actor/modify_permissions.cpp
@@ -15,8 +15,6 @@ public:
TModifyPermissionsActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ModifyPermissions, std::move(cb))
{
- Response_.MutableModifyPermissions()->SetRequestId(RequestId_);
- CopySecurityToken(Request());
}
static constexpr bool NeedExistingQueue() {
diff --git a/ydb/core/ymq/actor/proxy_actor.cpp b/ydb/core/ymq/actor/proxy_actor.cpp
index f2a23318df9..8c2d2a931aa 100644
--- a/ydb/core/ymq/actor/proxy_actor.cpp
+++ b/ydb/core/ymq/actor/proxy_actor.cpp
@@ -68,26 +68,11 @@ std::tuple<TString, TString, TString> ParseCloudSecurityToken(const TString& tok
}
void TProxyActor::Bootstrap() {
+ RetrieveUserAndQueueParameters();
this->Become(&TProxyActor::StateFunc);
StartTs_ = TActivationContext::Now();
RLOG_SQS_DEBUG("Request proxy started");
- const auto& cfg = Cfg();
-
- if (cfg.GetYandexCloudMode()) {
- TString securityToken;
-#define SQS_REQUEST_CASE(action) \
- const auto& request = Request_.Y_CAT(Get, action)(); \
- securityToken = ExtractSecurityToken<typename std::remove_reference<decltype(request)>::type, TCredentials>(request);
- SQS_SWITCH_REQUEST(Request_, Y_VERIFY(false));
-#undef SQS_REQUEST_CASE
- auto items = ParseCloudSecurityToken(securityToken);
- UserName_ = std::get<0>(items);
- FolderId_ = std::get<1>(items);
-
- // TODO: handle empty cloud id better
- RLOG_SQS_DEBUG("Proxy actor: used " << UserName_ << " as an account name and " << QueueName_ << " as a queue name");
- }
if (!UserName_ || !QueueName_) {
RLOG_SQS_WARN("Validation error: No " << (!UserName_ ? "user name" : "queue name") << " in proxy actor");
@@ -95,6 +80,7 @@ void TProxyActor::Bootstrap() {
return;
}
+ const auto& cfg = Cfg();
if (cfg.GetRequestTimeoutMs()) {
this->Schedule(TDuration::MilliSeconds(cfg.GetRequestTimeoutMs()), new TEvWakeup(), TimeoutCookie_.Get());
}
@@ -245,14 +231,24 @@ bool TProxyActor::NeedCreateProxyActor(EAction action) {
}
void TProxyActor::RetrieveUserAndQueueParameters() {
-// User name might be changed later in bootstrap for cloud mode
+ TString securityToken;
#define SQS_REQUEST_CASE(action) \
- UserName_ = Request_.Y_CAT(Get, action)().GetAuth().GetUserName(); \
- QueueName_ = Request_.Y_CAT(Get, action)().GetQueueName(); \
+ const auto& request = Request_.Y_CAT(Get, action)(); \
+ UserName_ = request.GetAuth().GetUserName(); \
+ FolderId_ = request.GetAuth().GetFolderId(); \
+ QueueName_ = request.GetQueueName(); \
+ securityToken = ExtractSecurityToken(request); \
SQS_SWITCH_REQUEST(Request_, throw TSQSException(NErrors::INVALID_ACTION) << "Incorrect request type")
#undef SQS_REQUEST_CASE
+
+ if (Cfg().GetYandexCloudMode() && !FolderId_) {
+ auto items = ParseCloudSecurityToken(securityToken);
+ UserName_ = std::get<0>(items);
+ FolderId_ = std::get<1>(items);
+ }
+ RLOG_SQS_DEBUG("Proxy actor: used user_name='" << UserName_ << "', queue_name='" << QueueName_ << "', folder_id='" << FolderId_ << "'");
}
} // namespace NKikimr::NSQS
diff --git a/ydb/core/ymq/actor/proxy_actor.h b/ydb/core/ymq/actor/proxy_actor.h
index c5397ef7023..55f2415e72b 100644
--- a/ydb/core/ymq/actor/proxy_actor.h
+++ b/ydb/core/ymq/actor/proxy_actor.h
@@ -25,7 +25,6 @@ public:
, Cb_(std::move(cb))
{
Y_VERIFY(RequestId_);
- RetrieveUserAndQueueParameters();
}
static constexpr NKikimrServices::TActivity::EType ActorActivityType() {
diff --git a/ydb/core/ymq/actor/purge_queue.cpp b/ydb/core/ymq/actor/purge_queue.cpp
index 959273ef7c4..0aa794f2055 100644
--- a/ydb/core/ymq/actor/purge_queue.cpp
+++ b/ydb/core/ymq/actor/purge_queue.cpp
@@ -21,10 +21,6 @@ public:
TPurgeQueueActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::PurgeQueue, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutablePurgeQueue()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
@@ -115,10 +111,6 @@ public:
TPurgeQueueBatchActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TCommonBatchActor(sourceSqsRequest, EAction::PurgeQueueBatch, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutablePurgeQueueBatch()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
@@ -128,7 +120,7 @@ private:
for (size_t i = 0; i < Request().EntriesSize(); ++i) {
const auto& entry = Request().GetEntries(i);
auto& req = *ret[i].MutablePurgeQueue();
- req.MutableAuth()->SetUserName(UserName_);
+ *req.MutableAuth() = Request().GetAuth();
if (Request().HasCredentials()) {
*req.MutableCredentials() = Request().GetCredentials();
diff --git a/ydb/core/ymq/actor/receive_message.cpp b/ydb/core/ymq/actor/receive_message.cpp
index 2b5bf0e5174..f5d37276e2d 100644
--- a/ydb/core/ymq/actor/receive_message.cpp
+++ b/ydb/core/ymq/actor/receive_message.cpp
@@ -29,10 +29,6 @@ public:
TReceiveMessageActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::ReceiveMessage, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableReceiveMessage()->SetRequestId(RequestId_);
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/actor/send_message.cpp b/ydb/core/ymq/actor/send_message.cpp
index e596b8f2e33..41abc43b91c 100644
--- a/ydb/core/ymq/actor/send_message.cpp
+++ b/ydb/core/ymq/actor/send_message.cpp
@@ -32,15 +32,6 @@ public:
: TActionActor(sourceSqsRequest, isBatch ? EAction::SendMessageBatch : EAction::SendMessage, std::move(cb))
, IsBatch_(isBatch)
{
- if (IsBatch_) {
- CopyAccountName(BatchRequest());
- Response_.MutableSendMessageBatch()->SetRequestId(RequestId_);
- CopySecurityToken(BatchRequest());
- } else {
- CopyAccountName(Request());
- Response_.MutableSendMessage()->SetRequestId(RequestId_);
- CopySecurityToken(Request());
- }
}
private:
diff --git a/ydb/core/ymq/actor/set_queue_attributes.cpp b/ydb/core/ymq/actor/set_queue_attributes.cpp
index 492a2021a1c..e1c94182853 100644
--- a/ydb/core/ymq/actor/set_queue_attributes.cpp
+++ b/ydb/core/ymq/actor/set_queue_attributes.cpp
@@ -28,14 +28,9 @@ public:
TSetQueueAttributesActor(const NKikimrClient::TSqsRequest& sourceSqsRequest, THolder<IReplyCallback> cb)
: TActionActor(sourceSqsRequest, EAction::SetQueueAttributes, std::move(cb))
{
- CopyAccountName(Request());
- Response_.MutableSetQueueAttributes()->SetRequestId(RequestId_);
-
for (const auto& attr : Request().attributes()) {
Attributes_[attr.GetName()] = attr.GetValue();
}
-
- CopySecurityToken(Request());
}
private:
diff --git a/ydb/core/ymq/base/action.h b/ydb/core/ymq/base/action.h
index 7718b176599..4e344bf7372 100644
--- a/ydb/core/ymq/base/action.h
+++ b/ydb/core/ymq/base/action.h
@@ -87,4 +87,31 @@ EAction GetNonBatchAction(EAction action);
macro(ListDeadLetterSourceQueues) \
macro(SetQueueAttributes)
+// All actions
+#define ENUMERATE_ALL_ACTIONS(macro) \
+ macro(ChangeMessageVisibility) \
+ macro(ChangeMessageVisibilityBatch) \
+ macro(CreateQueue) \
+ macro(CreateUser) \
+ macro(GetQueueAttributes) \
+ macro(GetQueueAttributesBatch) \
+ macro(GetQueueUrl) \
+ macro(DeleteMessage) \
+ macro(DeleteMessageBatch) \
+ macro(DeleteQueue) \
+ macro(DeleteQueueBatch) \
+ macro(DeleteUser) \
+ macro(ListQueues) \
+ macro(ListUsers) \
+ macro(PurgeQueue) \
+ macro(PurgeQueueBatch) \
+ macro(ReceiveMessage) \
+ macro(SendMessage) \
+ macro(SendMessageBatch) \
+ macro(SetQueueAttributes) \
+ macro(ModifyPermissions) \
+ macro(ListPermissions) \
+ macro(CountQueues) \
+ macro(ListDeadLetterSourceQueues)
+
} // namespace NKikimr::NSQS
diff --git a/ydb/core/ymq/base/security.h b/ydb/core/ymq/base/security.h
index 764be96265c..abbe5c8e59e 100644
--- a/ydb/core/ymq/base/security.h
+++ b/ydb/core/ymq/base/security.h
@@ -5,17 +5,17 @@
namespace NKikimr::NSQS {
-template <typename TReq, typename TCreds>
+template <typename TReq>
TString ExtractSecurityToken(const TReq& request) {
if (request.HasCredentials()) {
switch (request.GetCredentials().AccessKey_case()) {
- case TCreds::kOAuthToken: {
+ case TCredentials::kOAuthToken: {
return request.GetCredentials().GetOAuthToken();
}
- case TCreds::kTvmTicket: {
+ case TCredentials::kTvmTicket: {
return request.GetCredentials().GetTvmTicket();
}
- case TCreds::kStaticCreds: {
+ case TCredentials::kStaticCreds: {
return request.GetCredentials().GetStaticCreds();
}
default: {