AutheliaMultiDomainProxy/Controllers/VerifyController.cs

28 lines
891 B
C#

using AutheliaMultiDomainProxy.Backend;
using Microsoft.AspNetCore.Mvc;
namespace AutheliaMultiDomainProxy.Controllers;
[Controller]
[Route("/api/verify")]
public class VerifyController : Controller {
public string Get() {
// Check if we are on an allowed domain
if (!Vars.PermittedDomains.Any(p => Request.Host.Host.EndsWith($".{p}"))) {
Response.StatusCode = 421;
return "421 Misdirected Request";
}
var upstreamResponse = AuthHelpers.MakeUpstreamAutheliaRequest(Request.Headers, Request.Cookies[Vars.CookieName]);
foreach (var header in upstreamResponse.Headers) {
if (Vars.ResponseHeaders.Contains(header.Key, StringComparer.InvariantCultureIgnoreCase))
foreach (var s in header.Value)
Response.Headers.Add(header.Key, s);
}
Response.StatusCode = (int)upstreamResponse.StatusCode;
return upstreamResponse.Content.ReadAsStringAsync().Result;
}
}