aboutsummaryrefslogtreecommitdiffstats
path: root/library/cpp
diff options
context:
space:
mode:
authormolotkov-and <molotkov-and@ydb.tech>2023-04-11 09:35:52 +0300
committermolotkov-and <molotkov-and@ydb.tech>2023-04-11 09:35:52 +0300
commitbb50955aaec9a79a01de9bf6a136e5b17d741560 (patch)
treea84cb91cc37e002025fbf0d378dfa3bb6b92d48f /library/cpp
parent6ad0e01105cab8dc17e1318ed55da21a9e3cf104 (diff)
downloadydb-bb50955aaec9a79a01de9bf6a136e5b17d741560.tar.gz
YDB support OpenID Connect
Diffstat (limited to 'library/cpp')
-rw-r--r--library/cpp/actors/http/http.cpp16
-rw-r--r--library/cpp/actors/http/http.h4
2 files changed, 12 insertions, 8 deletions
diff --git a/library/cpp/actors/http/http.cpp b/library/cpp/actors/http/http.cpp
index a8e2c099221..3f3687ccef6 100644
--- a/library/cpp/actors/http/http.cpp
+++ b/library/cpp/actors/http/http.cpp
@@ -452,21 +452,25 @@ THttpIncomingResponse::THttpIncomingResponse(THttpOutgoingRequestPtr request)
: Request(request)
{}
-THttpOutgoingResponsePtr THttpIncomingRequest::CreateIncompleteResponse(TStringBuf status, TStringBuf message) {
+THttpOutgoingResponsePtr THttpIncomingRequest::ConstructResponse(TStringBuf status, TStringBuf message) {
TStringBuf version = Version;
if (version != "1.0" && version != "1.1") {
version = "1.1";
}
THttpOutgoingResponsePtr response = new THttpOutgoingResponse(this, "HTTP", version, status, message);
- response->Set<&THttpResponse::Connection>(GetConnection());
- if (!Endpoint->WorkerName.empty()) {
- response->Set("X-Worker-Name", Endpoint->WorkerName);
- }
return response;
}
THttpOutgoingResponsePtr THttpIncomingRequest::CreateIncompleteResponse(TStringBuf status, TStringBuf message, const THeaders& headers) {
- THttpOutgoingResponsePtr response = CreateIncompleteResponse(status, message);
+ THttpOutgoingResponsePtr response = ConstructResponse(status, message);
+ if (!headers.Has("Connection")) {
+ response->Set<&THttpResponse::Connection>(GetConnection());
+ }
+ if (!headers.Has("X-Worker-Name")) {
+ if (!Endpoint->WorkerName.empty()) {
+ response->Set("X-Worker-Name", Endpoint->WorkerName);
+ }
+ }
response->Set(headers);
return response;
}
diff --git a/library/cpp/actors/http/http.h b/library/cpp/actors/http/http.h
index b7227f6ca7f..c859c21a6d1 100644
--- a/library/cpp/actors/http/http.h
+++ b/library/cpp/actors/http/http.h
@@ -751,13 +751,13 @@ public:
TStringBuf body = TStringBuf(),
TInstant lastModified = TInstant());
- THttpOutgoingResponsePtr CreateIncompleteResponse(TStringBuf status, TStringBuf message);
- THttpOutgoingResponsePtr CreateIncompleteResponse(TStringBuf status, TStringBuf message, const THeaders& headers);
+ THttpOutgoingResponsePtr CreateIncompleteResponse(TStringBuf status, TStringBuf message, const THeaders& headers = {});
THttpOutgoingResponsePtr CreateIncompleteResponse(TStringBuf status, TStringBuf message, const THeaders& headers, TStringBuf body);
THttpIncomingRequestPtr Duplicate();
private:
+ THttpOutgoingResponsePtr ConstructResponse(TStringBuf status, TStringBuf message);
void FinishResponse(THttpOutgoingResponsePtr& response, TStringBuf body = TStringBuf());
};