Skip to content

Commit 404fdc6

Browse files
committed
Merge pull request #2110 from elastic/fix/2108
Make .NET core HttpConnection implementation more extensible
2 parents 3ab0b58 + 8ea5a23 commit 404fdc6

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
@@ -117,7 +117,14 @@ public virtual async Task<ElasticsearchResponse<TReturn>> RequestAsync<TReturn>(
117117
return await builder.ToResponseAsync().ConfigureAwait(false);
118118
}
119119

120-
private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
120+
protected virtual HttpRequestMessage CreateHttpRequestMessage(RequestData requestData)
121+
{
122+
var request = this.CreateRequestMessage(requestData);
123+
SetBasicAuthenticationIfNeeded(request, requestData);
124+
return request;
125+
}
126+
127+
protected virtual HttpRequestMessage CreateRequestMessage(RequestData requestData)
121128
{
122129
var method = ConvertHttpMethod(requestData.Method);
123130
var requestMessage = new HttpRequestMessage(method, requestData.Uri);
@@ -132,17 +139,6 @@ private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestDa
132139
if (!requestData.RunAs.IsNullOrEmpty())
133140
requestMessage.Headers.Add("es-shield-runas-user", requestData.RunAs);
134141

135-
string userInfo = null;
136-
if (!requestData.Uri.UserInfo.IsNullOrEmpty())
137-
userInfo = Uri.UnescapeDataString(requestData.Uri.UserInfo);
138-
else if (requestData.BasicAuthorizationCredentials != null)
139-
userInfo = requestData.BasicAuthorizationCredentials.ToString();
140-
if (!userInfo.IsNullOrEmpty())
141-
{
142-
var credentials = Convert.ToBase64String(Encoding.UTF8.GetBytes(userInfo));
143-
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Basic", credentials);
144-
}
145-
146142
var data = requestData.PostData;
147143

148144
if (data != null)
@@ -174,6 +170,21 @@ private static HttpRequestMessage CreateHttpRequestMessage(RequestData requestDa
174170
return requestMessage;
175171
}
176172

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

0 commit comments

Comments
 (0)