Skip to content

Commit bf2057f

Browse files
authored
ticket parser: Add priority to access service requests (#11278)
1 parent f73f6dc commit bf2057f

File tree

4 files changed

+13
-0
lines changed

4 files changed

+13
-0
lines changed

ydb/core/security/ticket_parser_impl.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
141141
TStackVec<TString> AdditionalSIDs;
142142
bool RefreshRetryableErrorImmediately = false;
143143
TExternalAuthInfo ExternalAuthInfo;
144+
bool IsLowAccessServiceRequestPriority = false;
144145

145146
TTokenRecordBase(const TStringBuf ticket)
146147
: Ticket(ticket)
@@ -394,6 +395,11 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
394395
}
395396
}
396397

398+
if (record.IsLowAccessServiceRequestPriority) {
399+
auto& headers = request->Headers;
400+
headers["x-ya-priority"] = "low";
401+
}
402+
397403
return request;
398404
}
399405

@@ -1704,6 +1710,7 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
17041710
CounterTicketsBuildTime->Collect((now - record.InitTime).MilliSeconds());
17051711
BLOG_D("Ticket " << record.GetMaskedTicket() << " ("
17061712
<< record.PeerName << ") has now valid token of " << record.Subject);
1713+
record.IsLowAccessServiceRequestPriority = true;
17071714
RefreshQueue.push({.Key = key, .RefreshTime = record.RefreshTime});
17081715
}
17091716

@@ -1732,6 +1739,7 @@ class TTicketParserImpl : public TActorBootstrapped<TDerived> {
17321739
<< record.PeerName << ") has now permanent error message '" << error.Message << "'");
17331740
}
17341741
CounterTicketsErrors->Inc();
1742+
record.IsLowAccessServiceRequestPriority = true;
17351743
RefreshQueue.push({.Key = key, .RefreshTime = record.RefreshTime});
17361744
}
17371745

ydb/library/grpc/actor_client/grpc_service_client.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ class TGrpcServiceClient {
9494
if (requestId) {
9595
meta.Aux.push_back({"x-request-id", requestId});
9696
}
97+
for (const auto& [k, v] : ev->Get()->Headers) {
98+
meta.Aux.push_back({k, v});
99+
}
97100
for (auto [k ,v]: Headers) {
98101
meta.Aux.push_back({k, v});
99102
}

ydb/library/ncloud/api/events.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ struct TEvGrpcProtoRequest : NActors::TEventLocal<TEv, TEventType> {
1111
TProtoMessage Request;
1212
TString Token;
1313
TString RequestId;
14+
std::unordered_map<TString, TString> Headers;
1415
};
1516

1617
template <typename TEv, ui32 TEventType, typename TProtoMessage>

ydb/library/ycloud/api/events.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ struct TEvGrpcProtoRequest : NActors::TEventLocal<TEv, TEventType> {
1212
TProtoMessage Request;
1313
TString Token;
1414
TString RequestId;
15+
std::unordered_map<TString, TString> Headers;
1516
};
1617

1718
template <typename TEv, ui32 TEventType, typename TProtoMessage>

0 commit comments

Comments
 (0)