Skip to content

Commit

Permalink
changed to StringBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
StekPerepolnen committed Nov 1, 2024
1 parent c7e7b32 commit e6ba78f
Showing 1 changed file with 13 additions and 16 deletions.
29 changes: 13 additions & 16 deletions ydb/library/actors/http/http.h
Original file line number Diff line number Diff line change
Expand Up @@ -222,31 +222,28 @@ class THttpBase : public HeaderType, public BufferType {
}
}
if (!cookieHeader.empty()) {
TString obfuscated = TString(cookieHeader);
NHttp::TCookies cookies(headers.Get("Cookie"));
for (auto& [name, value] : cookies.Cookies) {
TString obfuscatedValue = NKikimr::MaskTicket(value);
auto posValue = obfuscated.find(value);
if (posValue != TString::npos) {
obfuscated.replace(posValue, value.size(), obfuscatedValue);
TStringBuf cookieParser(cookieHeader);
TStringBuilder obfuscated;
for (TStringBuf param = cookieParser.NextTok(';'); !param.empty(); param = cookieParser.NextTok(';')) {
param.SkipPrefix(" ");
TStringBuf name = param.NextTok('=');
if (!obfuscated.empty()) {
obfuscated << ' ';
}
obfuscated << name << '=' << NKikimr::MaskTicket(param) << ';';
}
auto pos = data.find(cookieHeader);
if (pos != TString::npos) {
data.replace(pos, cookieHeader.size(), obfuscated);
}
}
if (!setCookieHeader.empty()) {
TStringBuf setCookieParser(setCookieHeader);
TStringBuf name = setCookieParser.NextTok('=');
TStringBuf value = setCookieParser.NextTok(';');
TStringBuf cookieParser(setCookieHeader);
TStringBuf name = cookieParser.NextTok('=');
TStringBuf value = cookieParser.NextTok(';');
if (!name.empty()) {
TString obfuscatedValue = NKikimr::MaskTicket(value);
TString obfuscated = TString(setCookieHeader);
auto posValue = obfuscated.find(value);
if (posValue != TString::npos) {
obfuscated.replace(posValue, value.size(), obfuscatedValue);
}
TStringBuilder obfuscated;
obfuscated << name << '=' << NKikimr::MaskTicket(value) << ';' << cookieParser;
auto pos = data.find(setCookieHeader);
if (pos != TString::npos) {
data.replace(pos, setCookieHeader.size(), obfuscated);
Expand Down

0 comments on commit e6ba78f

Please sign in to comment.