diff --git a/Oqtane.Server/Components/App.razor b/Oqtane.Server/Components/App.razor index 6da8bb8a..6083f895 100644 --- a/Oqtane.Server/Components/App.razor +++ b/Oqtane.Server/Components/App.razor @@ -29,6 +29,7 @@ @inject IAliasRepository AliasRepository @inject IUrlMappingRepository UrlMappingRepository @inject IVisitorRepository VisitorRepository +@inject IJwtManager JwtManager @@ -48,7 +49,7 @@ @if (_renderMode == "Interactive") { - + } else { @@ -61,11 +62,11 @@ { @if (_renderMode == "Interactive") { - + } else { - + } @@ -91,17 +92,18 @@ @code { private string _renderMode = "Interactive"; private string _interactiveRenderMode = "Server"; - private bool _prerender = true; + private string _prerender = "Prerendered"; + private int _visitorId = -1; + private string _remoteIPAddress = ""; + private string _authorizationToken = ""; private string _language = "en"; private string _antiForgeryToken = ""; - private string _remoteIPAddress = ""; private string _headResources = ""; private string _bodyResources = ""; private string _styleSheets = ""; private string _PWAScript = ""; private string _reconnectScript = ""; private string _message = ""; - private int _visitorId = -1; // CascadingParameter is required to access HttpContext [CascadingParameter] @@ -134,7 +136,7 @@ } if (!string.IsNullOrEmpty(site.RenderMode)) { - _prerender = (site.RenderMode.Replace(site.Runtime, "")) == "Prerendered"; + _prerender = site.RenderMode; } Route route = new Route(url, alias.Path); @@ -155,15 +157,10 @@ } // get jwt token for downstream APIs - // if (User.Identity.IsAuthenticated) - // { - // var sitesettings = HttpContext.GetSiteSettings(); - // var secret = sitesettings.GetValue("JwtOptions:Secret", ""); - // if (!string.IsNullOrEmpty(secret)) - // { - // AuthorizationToken = _jwtManager.GenerateToken(alias, (ClaimsIdentity)User.Identity, secret, sitesettings.GetValue("JwtOptions:Issuer", ""), sitesettings.GetValue("JwtOptions:Audience", ""), int.Parse(sitesettings.GetValue("JwtOptions:Lifetime", "20"))); - // } - // } + if (Context.User.Identity.IsAuthenticated) + { + CreateJwtToken(alias); + } // stylesheets var themes = ThemeRepository.GetThemes().ToList(); @@ -298,12 +295,8 @@ language = (language.Trim().Length == 0) ? "??" : language; // filter - string filter = Constants.DefaultVisitorFilter; var settings = Context.GetSiteSettings(); - if (settings.ContainsKey("VisitorFilter") && !string.IsNullOrEmpty(settings["VisitorFilter"])) - { - filter = settings["VisitorFilter"]; - } + var filter = settings.GetValue("VisitorFilter", Constants.DefaultVisitorFilter); foreach (string term in filter.ToLower().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(sValue => sValue.Trim()).ToArray()) { if (_remoteIPAddress.ToLower().Contains(term) || useragent.ToLower().Contains(term) || language.ToLower().Contains(term)) @@ -329,11 +322,7 @@ { // if enabled use IP Address correlation _visitorId = -1; - bool correlate = true; - if (settings.ContainsKey("VisitorCorrelation") && !string.IsNullOrEmpty(settings["VisitorCorrelation"])) - { - correlate = bool.Parse(settings["VisitorCorrelation"]); - } + var correlate = bool.Parse(settings.GetValue("VisitorCorrelation", "true")); if (correlate) { visitor = VisitorRepository.GetVisitor(SiteId, _remoteIPAddress); @@ -416,6 +405,16 @@ } } + private void CreateJwtToken(Alias alias) + { + var sitesettings = Context.GetSiteSettings(); + var secret = sitesettings.GetValue("JwtOptions:Secret", ""); + if (!string.IsNullOrEmpty(secret)) + { + _authorizationToken = JwtManager.GenerateToken(alias, (ClaimsIdentity)Context.User.Identity, secret, sitesettings.GetValue("JwtOptions:Issuer", ""), sitesettings.GetValue("JwtOptions:Audience", ""), int.Parse(sitesettings.GetValue("JwtOptions:Lifetime", "20"))); + } + } + private string CreatePWAScript(Alias alias, Site site, Route route) { return