Skip to content

Commit 8a77b3d

Browse files
oidc add cookie logs (#11367)
Co-authored-by: Andrey Molotkov <molotkov-and@ydb.tech>
1 parent 50391f2 commit 8a77b3d

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

ydb/mvp/oidc_proxy/oidc_protected_page_nebius.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include <library/cpp/json/json_reader.h>
22
#include <library/cpp/string_utils/base64/base64.h>
33
#include <ydb/library/actors/http/http.h>
4+
#include <ydb/library/security/util.h>
45
#include <ydb/mvp/core/appdata.h>
56
#include <ydb/mvp/core/mvp_tokens.h>
67
#include <ydb/mvp/core/mvp_log.h>
@@ -23,10 +24,16 @@ void THandlerSessionServiceCheckNebius::StartOidcProcess(const NActors::TActorCo
2324
LOG_DEBUG_S(ctx, EService::MVP, "Start OIDC process");
2425

2526
NHttp::TCookies cookies(headers.Get("Cookie"));
27+
TString sessionCookieName = CreateNameSessionCookie(Settings.ClientId);
28+
TStringBuf sessionCookieValue = cookies.Get(sessionCookieName);
29+
if (!sessionCookieValue.Empty()) {
30+
LOG_DEBUG_S(ctx, EService::MVP, "Using session cookie (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
31+
}
32+
2633

2734
TString sessionToken;
2835
try {
29-
Base64StrictDecode(cookies.Get(CreateNameSessionCookie(Settings.ClientId)), sessionToken);
36+
Base64StrictDecode(sessionCookieValue, sessionToken);
3037
} catch (std::exception& e) {
3138
LOG_DEBUG_S(ctx, EService::MVP, "Base64Decode session cookie: " << e.what());
3239
sessionToken.clear();

ydb/mvp/oidc_proxy/oidc_proxy_ut.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ Y_UNIT_TEST_SUITE(Mvp) {
395395
EatWholeString(incomingRequest, "GET /" + allowedProxyHost + "/counters HTTP/1.1\r\n"
396396
"Host: oidcproxy.net\r\n"
397397
"Cookie: yc_session=allowed_session_cookie;"
398-
+ CreateSecureCookie(settings.ClientId, "session_cookie") + "\r\n\r\n");
398+
+ CreateNameSessionCookie(settings.ClientId) + "=" + Base64Encode("session_cookie") + "\r\n\r\n");
399399
runtime.Send(new IEventHandle(target, edge, new NHttp::TEvHttpProxy::TEvHttpIncomingRequest(incomingRequest)));
400400
TAutoPtr<IEventHandle> handle;
401401

ydb/mvp/oidc_proxy/oidc_session_create_nebius.cpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#include <ydb/library/actors/http/http.h>
2+
#include <ydb/library/security/util.h>
23
#include "openid_connect.h"
34
#include "oidc_session_create_nebius.h"
5+
#include <library/cpp/string_utils/base64/base64.h>
46

57
namespace NMVP {
68
namespace NOIDC {
@@ -33,8 +35,12 @@ void THandlerSessionCreateNebius::RequestSessionToken(const TString& code, const
3335
}
3436

3537
void THandlerSessionCreateNebius::ProcessSessionToken(const TString& sessionToken, const NActors::TActorContext& ctx) {
38+
TString sessionCookieName = CreateNameSessionCookie(Settings.ClientId);
39+
TString sessionCookieValue = Base64Encode(sessionToken);
40+
LOG_DEBUG_S(ctx, EService::MVP, "Set session cookie: (" << sessionCookieName << ": " << NKikimr::MaskTicket(sessionCookieValue) << ")");
41+
3642
NHttp::THeadersBuilder responseHeaders;
37-
responseHeaders.Set("Set-Cookie", CreateSecureCookie(Settings.ClientId, sessionToken));
43+
responseHeaders.Set("Set-Cookie", CreateSecureCookie(sessionCookieName, sessionCookieValue));
3844
responseHeaders.Set("Location", Context.GetRequestedAddress());
3945
NHttp::THttpOutgoingResponsePtr httpResponse;
4046
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)