Skip to content

Commit d0de61c

Browse files
add oidc cookie logs
1 parent f12f073 commit d0de61c

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

ydb/mvp/oidc_proxy/oidc_protected_page_nebius.cpp

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,22 @@ void THandlerSessionServiceCheckNebius::StartOidcProcess(const NActors::TActorCo
2222
NHttp::THeaders headers(Request->Headers);
2323
LOG_DEBUG_S(ctx, EService::MVP, "Start OIDC process");
2424

25-
NHttp::TCookies cookies(headers.Get("Cookie"));
25+
TString sessionCookieName = CreateNameSessionCookie(Settings.ClientId);
26+
27+
TStringBuf cookieParser(headers["Cookie"]);
28+
TString sessionCookieValue;
29+
for (TStringBuf param = cookieParser.NextTok(';'); !param.empty(); param = cookieParser.NextTok(';')) {
30+
param.SkipPrefix(" ");
31+
TStringBuf name = param.NextTok('=');
32+
if (name == sessionCookieName) {
33+
sessionCookieValue = param;
34+
LOG_DEBUG_S(ctx, EService::MVP, "Using session cookie (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
35+
}
36+
}
2637

2738
TString sessionToken;
2839
try {
29-
Base64StrictDecode(cookies.Get(CreateNameSessionCookie(Settings.ClientId)), sessionToken);
40+
Base64StrictDecode(sessionCookieValue, sessionToken);
3041
} catch (std::exception& e) {
3142
LOG_DEBUG_S(ctx, EService::MVP, "Base64Decode session cookie: " << e.what());
3243
sessionToken.clear();

ydb/mvp/oidc_proxy/oidc_proxy_ut.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -392,10 +392,12 @@ Y_UNIT_TEST_SUITE(Mvp) {
392392
std::unique_ptr<grpc::Server> sessionServer(builder.BuildAndStart());
393393

394394
NHttp::THttpIncomingRequestPtr incomingRequest = new NHttp::THttpIncomingRequest();
395+
TString sessionCookieName = CreateNameSessionCookie(settings.ClientId);
396+
TString sessionCookieValue = Base64Encode("session_cookie");
395397
EatWholeString(incomingRequest, "GET /" + allowedProxyHost + "/counters HTTP/1.1\r\n"
396398
"Host: oidcproxy.net\r\n"
397399
"Cookie: yc_session=allowed_session_cookie;"
398-
+ CreateSecureCookie(settings.ClientId, "session_cookie") + "\r\n\r\n");
400+
+ CreateSecureCookie(sessionCookieName, sessionCookieValue) + "\r\n\r\n");
399401
runtime.Send(new IEventHandle(target, edge, new NHttp::TEvHttpProxy::TEvHttpIncomingRequest(incomingRequest)));
400402
TAutoPtr<IEventHandle> handle;
401403

ydb/mvp/oidc_proxy/oidc_session_create_nebius.cpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <ydb/library/actors/http/http.h>
22
#include "openid_connect.h"
33
#include "oidc_session_create_nebius.h"
4+
#include <library/cpp/string_utils/base64/base64.h>
45

56
namespace NMVP {
67
namespace NOIDC {
@@ -33,8 +34,12 @@ void THandlerSessionCreateNebius::RequestSessionToken(const TString& code, const
3334
}
3435

3536
void THandlerSessionCreateNebius::ProcessSessionToken(const TString& sessionToken, const NActors::TActorContext& ctx) {
37+
TString sessionCookieName = CreateNameSessionCookie(Settings.ClientId);
38+
TString sessionCookieValue = Base64Encode(sessionToken);
39+
LOG_DEBUG_S(ctx, EService::MVP, "Set session cookie: (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
40+
3641
NHttp::THeadersBuilder responseHeaders;
37-
responseHeaders.Set("Set-Cookie", CreateSecureCookie(Settings.ClientId, sessionToken));
42+
responseHeaders.Set("Set-Cookie", CreateSecureCookie(sessionCookieName, sessionCookieValue));
3843
responseHeaders.Set("Location", Context.GetRequestedAddress());
3944
NHttp::THttpOutgoingResponsePtr httpResponse;
4045
httpResponse = Request->CreateResponse("302", "Cookie set", responseHeaders);

ydb/mvp/oidc_proxy/openid_connect.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,9 +114,9 @@ const TString& GetAuthCallbackUrl() {
114114
return callbackUrl;
115115
}
116116

117-
TString CreateSecureCookie(const TString& key, const TString& value) {
117+
TString CreateSecureCookie(const TString& name, const TString& value) {
118118
TStringBuilder cookieBuilder;
119-
cookieBuilder << CreateNameSessionCookie(key) << "=" << Base64Encode(value)
119+
cookieBuilder << name << "=" << value
120120
<< "; Path=/; Secure; HttpOnly; SameSite=None; Partitioned";
121121
return cookieBuilder;
122122
}

0 commit comments

Comments
 (0)