mirror of
https://github.com/btcpayserver/btcpayserver.git
synced 2025-02-21 22:11:48 +01:00
Remove URI rewritting and ExternalUri stuff
This commit is contained in:
parent
a98402af12
commit
7f592639c5
3 changed files with 0 additions and 95 deletions
|
@ -227,7 +227,6 @@ namespace BTCPayServer.Configuration
|
||||||
PostgresConnectionString = conf.GetOrDefault<string>("postgres", null);
|
PostgresConnectionString = conf.GetOrDefault<string>("postgres", null);
|
||||||
MySQLConnectionString = conf.GetOrDefault<string>("mysql", null);
|
MySQLConnectionString = conf.GetOrDefault<string>("mysql", null);
|
||||||
BundleJsCss = conf.GetOrDefault<bool>("bundlejscss", true);
|
BundleJsCss = conf.GetOrDefault<bool>("bundlejscss", true);
|
||||||
ExternalUrl = conf.GetOrDefault<Uri>("externalurl", null);
|
|
||||||
|
|
||||||
var sshSettings = ParseSSHConfiguration(conf);
|
var sshSettings = ParseSSHConfiguration(conf);
|
||||||
if ((!string.IsNullOrEmpty(sshSettings.Password) || !string.IsNullOrEmpty(sshSettings.KeyFile)) && !string.IsNullOrEmpty(sshSettings.Server))
|
if ((!string.IsNullOrEmpty(sshSettings.Password) || !string.IsNullOrEmpty(sshSettings.KeyFile)) && !string.IsNullOrEmpty(sshSettings.Server))
|
||||||
|
@ -348,11 +347,6 @@ namespace BTCPayServer.Configuration
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
public Uri ExternalUrl
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
set;
|
|
||||||
}
|
|
||||||
public bool BundleJsCss
|
public bool BundleJsCss
|
||||||
{
|
{
|
||||||
get;
|
get;
|
||||||
|
@ -364,14 +358,5 @@ namespace BTCPayServer.Configuration
|
||||||
get;
|
get;
|
||||||
set;
|
set;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal string GetRootUri()
|
|
||||||
{
|
|
||||||
if (ExternalUrl == null)
|
|
||||||
return null;
|
|
||||||
UriBuilder builder = new UriBuilder(ExternalUrl);
|
|
||||||
builder.Path = RootPath;
|
|
||||||
return builder.ToString();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,8 +32,6 @@ namespace BTCPayServer.Hosting
|
||||||
|
|
||||||
public async Task Invoke(HttpContext httpContext)
|
public async Task Invoke(HttpContext httpContext)
|
||||||
{
|
{
|
||||||
RewriteHostIfNeeded(httpContext);
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var bitpayAuth = GetBitpayAuth(httpContext, out bool isBitpayAuth);
|
var bitpayAuth = GetBitpayAuth(httpContext, out bool isBitpayAuth);
|
||||||
|
@ -125,83 +123,6 @@ namespace BTCPayServer.Hosting
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RewriteHostIfNeeded(HttpContext httpContext)
|
|
||||||
{
|
|
||||||
string reverseProxyScheme = null;
|
|
||||||
if (httpContext.Request.Headers.TryGetValue("X-Forwarded-Proto", out StringValues proto))
|
|
||||||
{
|
|
||||||
var scheme = proto.SingleOrDefault();
|
|
||||||
if (scheme != null)
|
|
||||||
{
|
|
||||||
reverseProxyScheme = scheme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ushort? reverseProxyPort = null;
|
|
||||||
if (httpContext.Request.Headers.TryGetValue("X-Forwarded-Port", out StringValues port))
|
|
||||||
{
|
|
||||||
var portString = port.SingleOrDefault();
|
|
||||||
if (portString != null && ushort.TryParse(portString, out ushort pp))
|
|
||||||
{
|
|
||||||
reverseProxyPort = pp;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make sure that code executing after this point think that the external url has been hit.
|
|
||||||
if (_Options.ExternalUrl != null)
|
|
||||||
{
|
|
||||||
if (reverseProxyScheme != null && _Options.ExternalUrl.Scheme != reverseProxyScheme)
|
|
||||||
{
|
|
||||||
if (reverseProxyScheme == "http" && _Options.ExternalUrl.Scheme == "https")
|
|
||||||
Logs.PayServer.LogWarning($"BTCPay ExternalUrl setting expected to use scheme '{_Options.ExternalUrl.Scheme}' externally, but the reverse proxy uses scheme '{reverseProxyScheme}' (X-Forwarded-Port), forcing ExternalUrl");
|
|
||||||
}
|
|
||||||
httpContext.Request.Scheme = _Options.ExternalUrl.Scheme;
|
|
||||||
if (_Options.ExternalUrl.IsDefaultPort)
|
|
||||||
httpContext.Request.Host = new HostString(_Options.ExternalUrl.Host);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (reverseProxyPort != null && _Options.ExternalUrl.Port != reverseProxyPort.Value)
|
|
||||||
{
|
|
||||||
Logs.PayServer.LogWarning($"BTCPay ExternalUrl setting expected to use port '{_Options.ExternalUrl.Port}' externally, but the reverse proxy uses port '{reverseProxyPort.Value}'");
|
|
||||||
httpContext.Request.Host = new HostString(_Options.ExternalUrl.Host, reverseProxyPort.Value);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
httpContext.Request.Host = new HostString(_Options.ExternalUrl.Host, _Options.ExternalUrl.Port);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// NGINX pass X-Forwarded-Proto and X-Forwarded-Port, so let's use that to have better guess of the real domain
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ushort? p = null;
|
|
||||||
if (reverseProxyScheme != null)
|
|
||||||
{
|
|
||||||
httpContext.Request.Scheme = reverseProxyScheme;
|
|
||||||
if (reverseProxyScheme == "http")
|
|
||||||
p = 80;
|
|
||||||
if (reverseProxyScheme == "https")
|
|
||||||
p = 443;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (reverseProxyPort != null)
|
|
||||||
{
|
|
||||||
p = reverseProxyPort.Value;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (p.HasValue)
|
|
||||||
{
|
|
||||||
bool isDefault = httpContext.Request.Scheme == "http" && p.Value == 80;
|
|
||||||
isDefault |= httpContext.Request.Scheme == "https" && p.Value == 443;
|
|
||||||
if (isDefault)
|
|
||||||
httpContext.Request.Host = new HostString(httpContext.Request.Host.Host);
|
|
||||||
else
|
|
||||||
httpContext.Request.Host = new HostString(httpContext.Request.Host.Host, p.Value);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private static async Task HandleBitpayHttpException(HttpContext httpContext, BitpayHttpException ex)
|
private static async Task HandleBitpayHttpException(HttpContext httpContext, BitpayHttpException ex)
|
||||||
{
|
{
|
||||||
httpContext.Response.StatusCode = ex.StatusCode;
|
httpContext.Response.StatusCode = ex.StatusCode;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
@model InvoicesModel
|
@model InvoicesModel
|
||||||
@{
|
@{
|
||||||
ViewData["Title"] = "Invoices";
|
ViewData["Title"] = "Invoices";
|
||||||
var rootUrl = Context.Request.GetAbsoluteRoot();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@section HeadScripts {
|
@section HeadScripts {
|
||||||
|
|
Loading…
Add table
Reference in a new issue