Skip to content

Commit 767932d

Browse files
rename variables
1 parent 62ab8ab commit 767932d

31 files changed

+262
-270
lines changed

ydb/mvp/oidc_proxy/context.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
#include "oidc_settings.h"
88
#include "context.h"
99

10-
namespace NMVP {
11-
namespace NOIDC {
10+
namespace NMVP::NOIDC {
1211

1312
TContext::TContext(const TInitializer& initializer)
1413
: State(initializer.State)
@@ -94,5 +93,4 @@ TStringBuf TContext::GetRequestedUrl(const NHttp::THttpIncomingRequestPtr& reque
9493
return requestedUrl;
9594
}
9695

97-
} // NOIDC
98-
} // NMVP
96+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/context.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ using THttpIncomingRequestPtr = TIntrusivePtr<THttpIncomingRequest>;
1010

1111
}
1212

13-
namespace NMVP {
14-
namespace NOIDC {
13+
namespace NMVP::NOIDC {
1514

1615
class TContext {
1716
public:
@@ -45,5 +44,4 @@ class TContext {
4544
TString GenerateCookie(const TString& key) const;
4645
};
4746

48-
} // NOIDC
49-
} // NMVP
47+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/mvp.cpp

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@
2828

2929
NActors::IActor* CreateMemProfiler();
3030

31-
namespace NMVP {
32-
namespace NOIDC {
31+
namespace NMVP::NOIDC {
3332

3433
namespace {
3534

@@ -418,5 +417,4 @@ THolder<NActors::TActorSystemSetup> TMVP::BuildActorSystemSetup(int argc, char**
418417

419418
TAtomic TMVP::Quit = false;
420419

421-
} // NOIDC
422-
} // NMVP
420+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/mvp.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
#include <contrib/libs/yaml-cpp/include/yaml-cpp/yaml.h>
1313
#include "oidc_settings.h"
1414

15-
namespace NMVP {
16-
namespace NOIDC {
15+
namespace NMVP::NOIDC {
1716

1817
const TString& GetEServiceName(NActors::NLog::EComponent component);
1918

@@ -72,5 +71,4 @@ class TMVP {
7271
int Shutdown();
7372
};
7473

75-
} // namespace NOIDC
76-
} // namespace NMVP
74+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/oidc_client.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,9 @@
44
#include "oidc_impersonate_start_page_nebius.h"
55
#include "oidc_impersonate_stop_page_nebius.h"
66

7-
namespace NMVP {
8-
namespace NOIDC {
7+
namespace NMVP::NOIDC {
8+
9+
using namespace NActors;
910

1011
void InitOIDC(NActors::TActorSystem& actorSystem,
1112
const NActors::TActorId& httpProxyId,
@@ -37,5 +38,4 @@ void InitOIDC(NActors::TActorSystem& actorSystem,
3738
);
3839
}
3940

40-
} // NOIDC
41-
} // NMVP
41+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/oidc_client.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,10 @@ class TActorSystem;
55
struct TActorId;
66

77
} // NActors
8-
namespace NMVP {
9-
namespace NOIDC {
8+
namespace NMVP::NOIDC {
109

1110
struct TOpenIdConnectSettings;
1211

1312
void InitOIDC(NActors::TActorSystem& actorSystem, const NActors::TActorId& httpProxyId, const TOpenIdConnectSettings& settings);
1413

15-
} // NOIDC
16-
} // NMVP
14+
} // NMVP::NOIDC
Lines changed: 44 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <library/cpp/string_utils/base64/base64.h>
2+
#include <library/cpp/string_utils/quote/quote.h>
23
#include <ydb/library/actors/http/http.h>
34
#include <ydb/library/security/util.h>
45
#include <ydb/mvp/core/mvp_log.h>
@@ -7,21 +8,21 @@
78
#include "oidc_session_create.h"
89
#include "oidc_impersonate_start_page_nebius.h"
910

10-
namespace NMVP {
11-
namespace NOIDC {
11+
namespace NMVP::NOIDC {
1212

1313
THandlerImpersonateStart::THandlerImpersonateStart(const NActors::TActorId& sender,
14-
const NHttp::THttpIncomingRequestPtr& request,
15-
const NActors::TActorId& httpProxyId,
16-
const TOpenIdConnectSettings& settings)
14+
const NHttp::THttpIncomingRequestPtr& request,
15+
const NActors::TActorId& httpProxyId,
16+
const TOpenIdConnectSettings& settings)
1717
: Sender(sender)
1818
, Request(request)
1919
, HttpProxyId(httpProxyId)
2020
, Settings(settings)
2121
{}
2222

2323
void THandlerImpersonateStart::Bootstrap(const NActors::TActorContext& ctx) {
24-
LOG_DEBUG_S(ctx, EService::MVP, "Start impersonation process");
24+
BLOG_D("Start impersonation process");
25+
2526
NHttp::TUrlParameters urlParameters(Request->URL);
2627
TString serviceAccountId = urlParameters["service_account_id"];
2728

@@ -31,32 +32,26 @@ void THandlerImpersonateStart::Bootstrap(const NActors::TActorContext& ctx) {
3132
TString sessionCookieName = CreateNameSessionCookie(Settings.ClientId);
3233
TStringBuf sessionCookieValue = cookies.Get(sessionCookieName);
3334
if (!sessionCookieValue.Empty()) {
34-
LOG_DEBUG_S(ctx, EService::MVP, "Using session cookie (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
35+
BLOG_D("Using session cookie (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
3536
}
37+
TString sessionToken = DecodeToken(sessionCookieValue);
38+
TStringBuf impersonatedCookieValue = GetCookie(cookies, CreateNameImpersonatedCookie(Settings.ClientId));
3639

37-
TString sessionToken = DecodeToken(sessionCookieValue, ctx);
38-
39-
TString jsonError;
4040
if (sessionToken.empty()) {
41-
jsonError = "Wrong impersonate parameter: session cookie not found";
42-
} else if (serviceAccountId.empty()) {
43-
jsonError = "Wrong impersonate parameter: account_id not found";
41+
return ReplyBadRequestAndDie("Wrong impersonate parameter: session cookie not found", ctx);
4442
}
45-
46-
if (jsonError) {
47-
NHttp::THeadersBuilder responseHeaders;
48-
responseHeaders.Set("Content-Type", "text/plain");
49-
SetCORS(Request, &responseHeaders);
50-
NHttp::THttpOutgoingResponsePtr httpResponse = Request->CreateResponse("400", "Bad Request", responseHeaders, jsonError);
51-
ctx.Send(Sender, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(httpResponse));
52-
Die(ctx);
53-
} else {
54-
RequestImpersonatedToken(sessionToken, serviceAccountId, ctx);
43+
if (!impersonatedCookieValue.empty()) {
44+
return ReplyBadRequestAndDie("Wrong impersonate parameter: impersonated cookie already exists", ctx);
5545
}
46+
if (serviceAccountId.empty()) {
47+
return ReplyBadRequestAndDie("Wrong impersonate parameter: service_account_id not found", ctx);
48+
}
49+
50+
RequestImpersonatedToken(sessionToken, serviceAccountId, ctx);
5651
}
5752

5853
void THandlerImpersonateStart::RequestImpersonatedToken(const TString& sessionToken, const TString& serviceAccountId, const NActors::TActorContext& ctx) {
59-
LOG_DEBUG_S(ctx, EService::MVP, "Request impersonated token");
54+
BLOG_D("Request impersonated token");
6055
NHttp::THttpOutgoingRequestPtr httpRequest = NHttp::THttpOutgoingRequest::CreateRequestPost(Settings.GetImpersonateEndpointURL());
6156
httpRequest->Set<&NHttp::THttpRequest::ContentType>("application/x-www-form-urlencoded");
6257

@@ -70,7 +65,9 @@ void THandlerImpersonateStart::RequestImpersonatedToken(const TString& sessionTo
7065
TStringBuilder body;
7166
body << "session=" << sessionToken
7267
<< "&service_account_id=" << serviceAccountId;
73-
httpRequest->Set<&NHttp::THttpRequest::Body>(body);
68+
TString bodyStr = body;
69+
CGIEscape(bodyStr);
70+
httpRequest->Set<&NHttp::THttpRequest::Body>(bodyStr);
7471

7572
ctx.Send(HttpProxyId, new NHttp::TEvHttpProxy::TEvHttpOutgoingRequest(httpRequest));
7673
Become(&THandlerImpersonateStart::StateWork);
@@ -79,24 +76,22 @@ void THandlerImpersonateStart::RequestImpersonatedToken(const TString& sessionTo
7976
void THandlerImpersonateStart::ProcessImpersonatedToken(const TString& impersonatedToken, const NActors::TActorContext& ctx) {
8077
TString impersonatedCookieName = CreateNameImpersonatedCookie(Settings.ClientId);
8178
TString impersonatedCookieValue = Base64Encode(impersonatedToken);
82-
LOG_DEBUG_S(ctx, EService::MVP, "Set impersonated cookie: (" << impersonatedCookieName << ": " << NKikimr::MaskTicket(impersonatedCookieValue) << ")");
79+
BLOG_D("Set impersonated cookie: (" << impersonatedCookieName << ": " << NKikimr::MaskTicket(impersonatedCookieValue) << ")");
8380

8481
NHttp::THeadersBuilder responseHeaders;
8582
responseHeaders.Set("Set-Cookie", CreateSecureCookie(impersonatedCookieName, impersonatedCookieValue));
8683
SetCORS(Request, &responseHeaders);
87-
NHttp::THttpOutgoingResponsePtr httpResponse;
88-
httpResponse = Request->CreateResponse("200", "OK", responseHeaders);
89-
ctx.Send(Sender, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(httpResponse));
90-
Die(ctx);
84+
NHttp::THttpOutgoingResponsePtr httpResponse = Request->CreateResponse("200", "OK", responseHeaders);
85+
ReplyAndDie(httpResponse, ctx);
9186
}
9287

9388
void THandlerImpersonateStart::Handle(NHttp::TEvHttpProxy::TEvHttpIncomingResponse::TPtr event, const NActors::TActorContext& ctx) {
9489
NHttp::THttpOutgoingResponsePtr httpResponse;
9590
if (event->Get()->Error.empty() && event->Get()->Response) {
9691
NHttp::THttpIncomingResponsePtr response = event->Get()->Response;
97-
LOG_DEBUG_S(ctx, EService::MVP, "Incoming response from authorization server: " << response->Status);
92+
BLOG_D("Incoming response from authorization server: " << response->Status);
9893
if (response->Status == "200") {
99-
TStringBuf jsonError;
94+
TStringBuf errorMessage;
10095
NJson::TJsonValue jsonValue;
10196
NJson::TJsonReaderConfig jsonConfig;
10297
if (NJson::ReadJsonTree(response->Body, &jsonConfig, &jsonValue)) {
@@ -106,34 +101,45 @@ void THandlerImpersonateStart::Handle(NHttp::TEvHttpProxy::TEvHttpIncomingRespon
106101
ProcessImpersonatedToken(impersonatedToken, ctx);
107102
return;
108103
} else {
109-
jsonError = "Wrong OIDC provider response: impersonated token not found";
104+
errorMessage = "Wrong OIDC provider response: impersonated token not found";
110105
}
111106
} else {
112-
jsonError = "Wrong OIDC response";
107+
errorMessage = "Wrong OIDC response";
113108
}
114109
NHttp::THeadersBuilder responseHeaders;
115110
responseHeaders.Set("Content-Type", "text/plain");
116111
SetCORS(Request, &responseHeaders);
117-
httpResponse = Request->CreateResponse("400", "Bad Request", responseHeaders, jsonError);
112+
return ReplyAndDie(Request->CreateResponse("400", "Bad Request", responseHeaders, errorMessage), ctx);
118113
} else {
119114
NHttp::THeadersBuilder responseHeaders;
120115
NHttp::THeaders headers(response->Headers);
121116
if (headers.Has("Content-Type")) {
122117
responseHeaders.Set("Content-Type", headers.Get("Content-Type"));
123118
}
124119
SetCORS(Request, &responseHeaders);
125-
httpResponse = Request->CreateResponse(response->Status, response->Message, responseHeaders, response->Body);
120+
return ReplyAndDie(Request->CreateResponse(response->Status, response->Message, responseHeaders, response->Body), ctx);
126121
}
127122
} else {
128123
NHttp::THeadersBuilder responseHeaders;
129124
responseHeaders.Set("Content-Type", "text/plain");
130125
SetCORS(Request, &responseHeaders);
131-
httpResponse = Request->CreateResponse("400", "Bad Request", responseHeaders, event->Get()->Error);
126+
return ReplyAndDie(Request->CreateResponse("400", "Bad Request", responseHeaders, event->Get()->Error), ctx);
132127
}
128+
}
129+
130+
void THandlerImpersonateStart::ReplyAndDie(NHttp::THttpOutgoingResponsePtr httpResponse, const NActors::TActorContext& ctx) {
133131
ctx.Send(Sender, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(httpResponse));
134132
Die(ctx);
135133
}
136134

135+
void THandlerImpersonateStart::ReplyBadRequestAndDie(const TString& errorMessage, const NActors::TActorContext& ctx) {
136+
NHttp::THeadersBuilder responseHeaders;
137+
responseHeaders.Set("Content-Type", "text/plain");
138+
SetCORS(Request, &responseHeaders);
139+
NHttp::THttpOutgoingResponsePtr httpResponse = Request->CreateResponse("400", "Bad Request", responseHeaders, errorMessage);
140+
ReplyAndDie(httpResponse, ctx);
141+
}
142+
137143
TImpersonateStartPageHandler::TImpersonateStartPageHandler(const NActors::TActorId& httpProxyId, const TOpenIdConnectSettings& settings)
138144
: TBase(&TImpersonateStartPageHandler::StateWork)
139145
, HttpProxyId(httpProxyId)
@@ -144,5 +150,4 @@ void TImpersonateStartPageHandler::Handle(NHttp::TEvHttpProxy::TEvHttpIncomingRe
144150
ctx.Register(new THandlerImpersonateStart(event->Sender, event->Get()->Request, HttpProxyId, Settings));
145151
}
146152

147-
} // NOIDC
148-
} // NMVP
153+
} // NMVP::NOIDC

ydb/mvp/oidc_proxy/oidc_impersonate_start_page_nebius.h

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,9 @@
33
#include "oidc_settings.h"
44
#include "context.h"
55

6-
namespace NMVP {
7-
namespace NOIDC {
6+
namespace NMVP::NOIDC {
7+
8+
using namespace NActors;
89

910
class THandlerImpersonateStart : public NActors::TActorBootstrapped<THandlerImpersonateStart> {
1011
private:
@@ -13,23 +14,25 @@ class THandlerImpersonateStart : public NActors::TActorBootstrapped<THandlerImpe
1314
protected:
1415
const NActors::TActorId Sender;
1516
const NHttp::THttpIncomingRequestPtr Request;
16-
NActors::TActorId HttpProxyId;
17+
const NActors::TActorId HttpProxyId;
1718
const TOpenIdConnectSettings Settings;
1819

1920
public:
2021
THandlerImpersonateStart(const NActors::TActorId& sender,
2122
const NHttp::THttpIncomingRequestPtr& request,
2223
const NActors::TActorId& httpProxyId,
2324
const TOpenIdConnectSettings& settings);
25+
void Bootstrap(const NActors::TActorContext& ctx);
2426
void RequestImpersonatedToken(const TString&, const TString&, const NActors::TActorContext&);
2527
void ProcessImpersonatedToken(const TString& impersonatedToken, const NActors::TActorContext& ctx);
26-
27-
void Bootstrap(const NActors::TActorContext& ctx);
2828
void Handle(NHttp::TEvHttpProxy::TEvHttpIncomingResponse::TPtr event, const NActors::TActorContext& ctx);
29+
void ReplyAndDie(NHttp::THttpOutgoingResponsePtr httpResponse, const NActors::TActorContext& ctx);
30+
void ReplyBadRequestAndDie(const TString& errorMessage, const NActors::TActorContext& ctx);
2931

3032
STFUNC(StateWork) {
3133
switch (ev->GetTypeRewrite()) {
3234
HFunc(NHttp::TEvHttpProxy::TEvHttpIncomingResponse, Handle);
35+
cFunc(TEvents::TEvPoisonPill::EventType, PassAway);
3336
}
3437
}
3538
};
@@ -47,9 +50,9 @@ class TImpersonateStartPageHandler : public NActors::TActor<TImpersonateStartPag
4750
STFUNC(StateWork) {
4851
switch (ev->GetTypeRewrite()) {
4952
HFunc(NHttp::TEvHttpProxy::TEvHttpIncomingRequest, Handle);
53+
cFunc(TEvents::TEvPoisonPill::EventType, PassAway);
5054
}
5155
}
5256
};
5357

54-
} // NOIDC
55-
} // NMVP
58+
} // NMVP::NOIDC
Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#include "openid_connect.h"
22
#include "oidc_session_create.h"
33
#include "oidc_impersonate_stop_page_nebius.h"
4+
#include <ydb/library/actors/core/events.h>
45

5-
namespace NMVP {
6-
namespace NOIDC {
6+
namespace NMVP::NOIDC {
77

88
THandlerImpersonateStop::THandlerImpersonateStop(const NActors::TActorId& sender,
9-
const NHttp::THttpIncomingRequestPtr& request,
10-
const NActors::TActorId& httpProxyId,
11-
const TOpenIdConnectSettings& settings)
9+
const NHttp::THttpIncomingRequestPtr& request,
10+
const NActors::TActorId& httpProxyId,
11+
const TOpenIdConnectSettings& settings)
1212
: Sender(sender)
1313
, Request(request)
1414
, HttpProxyId(httpProxyId)
@@ -17,14 +17,18 @@ THandlerImpersonateStop::THandlerImpersonateStop(const NActors::TActorId& sender
1717

1818
void THandlerImpersonateStop::Bootstrap(const NActors::TActorContext& ctx) {
1919
TString impersonatedCookieName = CreateNameImpersonatedCookie(Settings.ClientId);
20-
LOG_DEBUG_S(ctx, EService::MVP, "Clear impersonated cookie: (" << impersonatedCookieName << ")");
20+
BLOG_D("Clear impersonated cookie: (" << impersonatedCookieName << ")");
2121

2222
NHttp::THeadersBuilder responseHeaders;
2323
responseHeaders.Set("Set-Cookie", ClearSecureCookie(impersonatedCookieName));
2424
SetCORS(Request, &responseHeaders);
2525

2626
NHttp::THttpOutgoingResponsePtr httpResponse;
2727
httpResponse = Request->CreateResponse("200", "OK", responseHeaders);
28+
ReplyAndDie(httpResponse, ctx);
29+
}
30+
31+
void THandlerImpersonateStop::ReplyAndDie(NHttp::THttpOutgoingResponsePtr httpResponse, const NActors::TActorContext& ctx) {
2832
ctx.Send(Sender, new NHttp::TEvHttpProxy::TEvHttpOutgoingResponse(httpResponse));
2933
Die(ctx);
3034
}
@@ -39,5 +43,4 @@ void TImpersonateStopPageHandler::Handle(NHttp::TEvHttpProxy::TEvHttpIncomingReq
3943
ctx.Register(new THandlerImpersonateStop(event->Sender, event->Get()->Request, HttpProxyId, Settings));
4044
}
4145

42-
} // NOIDC
43-
} // NMVP
46+
} // NMVP::NOIDC

0 commit comments

Comments
 (0)