Skip to content

Commit f07f31a

Browse files
committed
Make .NET core HttpConnection implementation more extensible
Closes #2108
1 parent 030522b commit f07f31a

File tree

1 file changed

+23
-12
lines changed

1 file changed

+23
-12
lines changed

src/Elasticsearch.Net/Connection/HttpConnection-CoreFx.cs

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,14 @@ public virtual async Task<ElasticsearchResponse<TReturn>> RequestAsync<TReturn>(
113113
return await builder.ToResponseAsync().ConfigureAwait(false);
114114
}
115115

116-
private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
116+
protected virtual HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
117+
{
118+
var request = this.CreateRequestMessage(requestData);
119+
SetBasicAuthenticationIfNeeded(request, requestData);
120+
return request;
121+
}
122+
123+
protected virtual HttpRequestMessage CreateRequestMessage(RequestData requestData)
117124
{
118125
var method = ConvertHttpMethod(requestData.Method);
119126
var requestMessage = new HttpRequestMessage(method, requestData.Uri);
@@ -128,17 +135,6 @@ private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestDa
128135
if (!requestData.RunAs.IsNullOrEmpty())
129136
requestMessage.Headers.Add("es-shield-runas-user", requestData.RunAs);
130137

131-
string userInfo = null;
132-
if (!requestData.Uri.UserInfo.IsNullOrEmpty())
133-
userInfo = Uri.UnescapeDataString(requestData.Uri.UserInfo);
134-
else if (requestData.BasicAuthorizationCredentials != null)
135-
userInfo = requestData.BasicAuthorizationCredentials.ToString();
136-
if (!userInfo.IsNullOrEmpty())
137-
{
138-
var credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(userInfo));
139-
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", credentials);
140-
}
141-
142138
var data = requestData.PostData;
143139

144140
if (data != null)
@@ -170,6 +166,21 @@ private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestDa
170166
return requestMessage;
171167
}
172168

169+
protected virtual void SetBasicAuthenticationIfNeeded(HttpRequestMessage requestMessage, RequestData requestData)
170+
{
171+
string userInfo = null;
172+
if (!requestData.Uri.UserInfo.IsNullOrEmpty())
173+
userInfo = Uri.UnescapeDataString(requestData.Uri.UserInfo);
174+
else if (requestData.BasicAuthorizationCredentials != null)
175+
userInfo = requestData.BasicAuthorizationCredentials.ToString();
176+
if (!userInfo.IsNullOrEmpty())
177+
{
178+
var credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(userInfo));
179+
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", credentials);
180+
}
181+
}
182+
183+
173184
private static System.Net.Http.HttpMethod ConvertHttpMethod(HttpMethod httpMethod)
174185
{
175186
switch (httpMethod)

0 commit comments

Comments
 (0)