11
11
#include < ydb/core/ymq/base/helpers.h>
12
12
#include < ydb/core/ymq/base/limits.h>
13
13
#include < ydb/core/ymq/base/secure_protobuf_printer.h>
14
+ #include < ydb/core/ymq/base/utils.h>
14
15
15
16
#include < ydb/library/actors/core/actorsystem.h>
16
17
#include < ydb/library/actors/core/log.h>
28
29
#include < util/string/split.h>
29
30
#include < library/cpp/string_utils/url/url.h>
30
31
32
+
31
33
namespace NKikimr ::NSQS {
32
34
33
35
using NKikimrClient::TSqsRequest;
@@ -48,8 +50,6 @@ const std::vector<TStringBuf> PRIVATE_TOKENS_HEADERS = {
48
50
49
51
const TString CREDENTIAL_PARAM = " credential" ;
50
52
51
- constexpr TStringBuf PRIVATE_REQUEST_PATH_PREFIX = " /private" ;
52
-
53
53
const TSet<TString> ModifyPermissionsActions = {" GrantPermissions" , " RevokePermissions" , " SetPermissions" };
54
54
55
55
bool IsPrivateTokenHeader (TStringBuf headerName) {
@@ -264,26 +264,9 @@ bool THttpRequest::DoReply(const TReplyParams& p) {
264
264
}
265
265
}
266
266
267
- TString THttpRequest::GetRequestPathPart (TStringBuf path, size_t partIdx) const {
268
- if (IsPrivateRequest_) {
269
- path.SkipPrefix (PRIVATE_REQUEST_PATH_PREFIX);
270
- }
271
-
272
- TVector<TStringBuf> items;
273
- StringSplitter (path).Split (' /' ).AddTo (&items);
274
- if (items.size () > partIdx) {
275
- return TString (items[partIdx]);
276
- }
277
- return TString ();
278
- }
279
-
280
267
TString THttpRequest::ExtractQueueNameFromPath (const TStringBuf path) {
281
- return GetRequestPathPart (path, 2 );
282
- }
283
-
284
- TString THttpRequest::ExtractAccountNameFromPath (const TStringBuf path) {
285
- return GetRequestPathPart (path, 1 );
286
- }
268
+ return NKikimr::NSQS::ExtractQueueNameFromPath (path, IsPrivateRequest_);
269
+ };
287
270
288
271
void THttpRequest::ExtractQueueAndAccountNames (const TStringBuf path) {
289
272
if (Action_ == EAction::ModifyPermissions)
@@ -296,9 +279,11 @@ void THttpRequest::ExtractQueueAndAccountNames(const TStringBuf path) {
296
279
297
280
QueueName_ = *QueryParams_.QueueName ;
298
281
} else {
299
- const auto pathAndQuery = QueryParams_.QueueUrl ? GetPathAndQuery (*QueryParams_.QueueUrl ) : GetPathAndQuery (path);
282
+ const auto pathAndQuery = QueryParams_.QueueUrl
283
+ ? GetPathAndQuery (*QueryParams_.QueueUrl )
284
+ : GetPathAndQuery (path);
300
285
QueueName_ = ExtractQueueNameFromPath (pathAndQuery);
301
- AccountName_ = ExtractAccountNameFromPath (pathAndQuery);
286
+ AccountName_ = NKikimr::NSQS :: ExtractAccountNameFromPath (pathAndQuery, IsPrivateRequest_ );
302
287
303
288
if (IsProxyAction (Action_)) {
304
289
if (QueryParams_.QueueUrl && *QueryParams_.QueueUrl ) {
@@ -381,9 +366,7 @@ void THttpRequest::ParseCgiParameters(const TCgiParameters& params) {
381
366
}
382
367
383
368
void THttpRequest::ParsePrivateRequestPathPrefix (const TStringBuf& path) {
384
- if (path.StartsWith (PRIVATE_REQUEST_PATH_PREFIX)) {
385
- IsPrivateRequest_ = true ;
386
- }
369
+ IsPrivateRequest_ = NKikimr::NSQS::IsPrivateRequest (path);
387
370
}
388
371
389
372
ui64 THttpRequest::CalculateRequestSizeInBytes (const THttpInput& input, const ui64 contentLength) const {
0 commit comments