1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-03 09:02:48 -05:00

version info in response headers

This commit is contained in:
Kyle Spearrin
2017-08-25 08:57:43 -04:00
parent 0e2c86b1f5
commit eb9bb315c3
6 changed files with 61 additions and 30 deletions

View File

@ -15,12 +15,14 @@ using Microsoft.AspNetCore.HttpOverrides;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Http;
#if NET461
using Microsoft.WindowsAzure.Storage;
#endif
using System;
using System.IO;
using SqlServerRepos = Bit.Core.Repositories.SqlServer;
using System.Threading.Tasks;
namespace Bit.Core.Utilities
{
@ -267,19 +269,35 @@ namespace Bit.Core.Utilities
return globalSettings;
}
public static void UseForwardedHeadersForAzure(this IApplicationBuilder app)
public static void UseDefaultMiddleware(this IApplicationBuilder app, IHostingEnvironment env)
{
// ref: https://github.com/aspnet/Docs/issues/2384
var forwardOptions = new ForwardedHeadersOptions
if(!env.IsDevelopment())
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
RequireHeaderSymmetry = false
};
// Adjust headers for proxy.
// ref: https://github.com/aspnet/Docs/issues/2384
var forwardOptions = new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto,
RequireHeaderSymmetry = false
};
forwardOptions.KnownNetworks.Clear();
forwardOptions.KnownProxies.Clear();
app.UseForwardedHeaders(forwardOptions);
}
forwardOptions.KnownNetworks.Clear();
forwardOptions.KnownProxies.Clear();
// Add version information to response headers
app.Use(async (httpContext, next) =>
{
httpContext.Response.OnStarting((state) =>
{
var info = CoreHelpers.GetVersionInfo();
httpContext.Response.Headers.Append("Version", info.version);
httpContext.Response.Headers.Append("VersionWeight", info.versionWeight.ToString());
return Task.FromResult(0);
}, null);
app.UseForwardedHeaders(forwardOptions);
await next.Invoke();
});
}
}
}