1
0
mirror of https://github.com/bitwarden/server.git synced 2025-06-30 23:52:50 -05:00

move ip address method to core helpers

This commit is contained in:
Kyle Spearrin
2019-09-03 14:08:08 -04:00
parent 4982c21c37
commit 72310701d2
2 changed files with 24 additions and 23 deletions

View File

@ -7,14 +7,12 @@ using Microsoft.AspNetCore.Http;
using Bit.Core.Repositories; using Bit.Core.Repositories;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Security.Claims; using System.Security.Claims;
using Bit.Core.Utilities;
namespace Bit.Core namespace Bit.Core
{ {
public class CurrentContext public class CurrentContext
{ {
private const string CloudFlareConnectingIp = "CF-Connecting-IP";
private const string RealIp = "X-Real-IP";
private bool _builtHttpContext; private bool _builtHttpContext;
private bool _builtClaimsPrincipal; private bool _builtClaimsPrincipal;
@ -59,7 +57,7 @@ namespace Bit.Core
} }
_builtClaimsPrincipal = true; _builtClaimsPrincipal = true;
IpAddress = GetRequestIp(globalSettings); IpAddress = HttpContext.GetIpAddress(globalSettings);
if(user == null || !user.Claims.Any()) if(user == null || !user.Claims.Any())
{ {
return; return;
@ -172,25 +170,6 @@ namespace Bit.Core
return Organizations; return Organizations;
} }
private string GetRequestIp(GlobalSettings globalSettings)
{
if(HttpContext == null)
{
return null;
}
if(!globalSettings.SelfHosted && HttpContext.Request.Headers.ContainsKey(CloudFlareConnectingIp))
{
return HttpContext.Request.Headers[CloudFlareConnectingIp].ToString();
}
if(globalSettings.SelfHosted && HttpContext.Request.Headers.ContainsKey(RealIp))
{
return HttpContext.Request.Headers[RealIp].ToString();
}
return HttpContext.Connection?.RemoteIpAddress?.ToString();
}
private string GetClaimValue(Dictionary<string, IEnumerable<Claim>> claims, string type) private string GetClaimValue(Dictionary<string, IEnumerable<Claim>> claims, string type)
{ {
if(!claims.ContainsKey(type)) if(!claims.ContainsKey(type))

View File

@ -33,6 +33,8 @@ namespace Bit.Core.Utilities
"RL?+AOEUIDHTNS_:QJKXBMWVZ"; "RL?+AOEUIDHTNS_:QJKXBMWVZ";
private static readonly string _qwertyColemakMap = "qwertyuiopasdfghjkl;zxcvbnmQWERTYUIOPASDFGHJKL:ZXCVBNM"; private static readonly string _qwertyColemakMap = "qwertyuiopasdfghjkl;zxcvbnmQWERTYUIOPASDFGHJKL:ZXCVBNM";
private static readonly string _colemakMap = "qwfpgjluy;arstdhneiozxcvbkmQWFPGJLUY:ARSTDHNEIOZXCVBKM"; private static readonly string _colemakMap = "qwfpgjluy;arstdhneiozxcvbkmQWFPGJLUY:ARSTDHNEIOZXCVBKM";
private static readonly string CloudFlareConnectingIp = "CF-Connecting-IP";
private static readonly string RealIp = "X-Real-IP";
/// <summary> /// <summary>
/// Generate sequential Guid for Sql Server. /// Generate sequential Guid for Sql Server.
@ -569,5 +571,25 @@ namespace Bit.Core.Utilities
} }
return subName; return subName;
} }
public static string GetIpAddress(this Microsoft.AspNetCore.Http.HttpContext httpContext,
GlobalSettings globalSettings)
{
if(httpContext == null)
{
return null;
}
if(!globalSettings.SelfHosted && httpContext.Request.Headers.ContainsKey(CloudFlareConnectingIp))
{
return httpContext.Request.Headers[CloudFlareConnectingIp].ToString();
}
if(globalSettings.SelfHosted && httpContext.Request.Headers.ContainsKey(RealIp))
{
return httpContext.Request.Headers[RealIp].ToString();
}
return httpContext.Connection?.RemoteIpAddress?.ToString();
}
} }
} }