add support for Jwt Token creation
This commit is contained in:
parent
5e82700871
commit
69e4fcfc76
|
@ -29,6 +29,7 @@
|
||||||
@inject IAliasRepository AliasRepository
|
@inject IAliasRepository AliasRepository
|
||||||
@inject IUrlMappingRepository UrlMappingRepository
|
@inject IUrlMappingRepository UrlMappingRepository
|
||||||
@inject IVisitorRepository VisitorRepository
|
@inject IVisitorRepository VisitorRepository
|
||||||
|
@inject IJwtManager JwtManager
|
||||||
|
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="@_language">
|
<html lang="@_language">
|
||||||
|
@ -48,7 +49,7 @@
|
||||||
<link id="app-stylesheet-module" />
|
<link id="app-stylesheet-module" />
|
||||||
@if (_renderMode == "Interactive")
|
@if (_renderMode == "Interactive")
|
||||||
{
|
{
|
||||||
<Head @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender)" />
|
<Head @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender.Contains("Prerendered"))" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -61,11 +62,11 @@
|
||||||
{
|
{
|
||||||
@if (_renderMode == "Interactive")
|
@if (_renderMode == "Interactive")
|
||||||
{
|
{
|
||||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Server" RenderMode="PreRendered" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="" @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender)" />
|
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="@_interactiveRenderMode" RenderMode="@_prerender" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" @rendermode="@RenderModes.GetInteractiveRenderMode((_renderMode + _interactiveRenderMode), _prerender.Contains("Prerendered"))" />
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="Server" RenderMode="PreRendered" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="" />
|
<Routes AntiForgeryToken="@_antiForgeryToken" Runtime="@_interactiveRenderMode" RenderMode="@_prerender" VisitorId="@_visitorId" RemoteIPAddress="@_remoteIPAddress" AuthorizationToken="@_authorizationToken" />
|
||||||
}
|
}
|
||||||
|
|
||||||
<script src="js/interop.js"></script>
|
<script src="js/interop.js"></script>
|
||||||
|
@ -91,17 +92,18 @@
|
||||||
@code {
|
@code {
|
||||||
private string _renderMode = "Interactive";
|
private string _renderMode = "Interactive";
|
||||||
private string _interactiveRenderMode = "Server";
|
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 _language = "en";
|
||||||
private string _antiForgeryToken = "";
|
private string _antiForgeryToken = "";
|
||||||
private string _remoteIPAddress = "";
|
|
||||||
private string _headResources = "";
|
private string _headResources = "";
|
||||||
private string _bodyResources = "";
|
private string _bodyResources = "";
|
||||||
private string _styleSheets = "";
|
private string _styleSheets = "";
|
||||||
private string _PWAScript = "";
|
private string _PWAScript = "";
|
||||||
private string _reconnectScript = "";
|
private string _reconnectScript = "";
|
||||||
private string _message = "";
|
private string _message = "";
|
||||||
private int _visitorId = -1;
|
|
||||||
|
|
||||||
// CascadingParameter is required to access HttpContext
|
// CascadingParameter is required to access HttpContext
|
||||||
[CascadingParameter]
|
[CascadingParameter]
|
||||||
|
@ -134,7 +136,7 @@
|
||||||
}
|
}
|
||||||
if (!string.IsNullOrEmpty(site.RenderMode))
|
if (!string.IsNullOrEmpty(site.RenderMode))
|
||||||
{
|
{
|
||||||
_prerender = (site.RenderMode.Replace(site.Runtime, "")) == "Prerendered";
|
_prerender = site.RenderMode;
|
||||||
}
|
}
|
||||||
|
|
||||||
Route route = new Route(url, alias.Path);
|
Route route = new Route(url, alias.Path);
|
||||||
|
@ -155,15 +157,10 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
// get jwt token for downstream APIs
|
// get jwt token for downstream APIs
|
||||||
// if (User.Identity.IsAuthenticated)
|
if (Context.User.Identity.IsAuthenticated)
|
||||||
// {
|
{
|
||||||
// var sitesettings = HttpContext.GetSiteSettings();
|
CreateJwtToken(alias);
|
||||||
// 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")));
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// stylesheets
|
// stylesheets
|
||||||
var themes = ThemeRepository.GetThemes().ToList();
|
var themes = ThemeRepository.GetThemes().ToList();
|
||||||
|
@ -298,12 +295,8 @@
|
||||||
language = (language.Trim().Length == 0) ? "??" : language;
|
language = (language.Trim().Length == 0) ? "??" : language;
|
||||||
|
|
||||||
// filter
|
// filter
|
||||||
string filter = Constants.DefaultVisitorFilter;
|
|
||||||
var settings = Context.GetSiteSettings();
|
var settings = Context.GetSiteSettings();
|
||||||
if (settings.ContainsKey("VisitorFilter") && !string.IsNullOrEmpty(settings["VisitorFilter"]))
|
var filter = settings.GetValue("VisitorFilter", Constants.DefaultVisitorFilter);
|
||||||
{
|
|
||||||
filter = settings["VisitorFilter"];
|
|
||||||
}
|
|
||||||
foreach (string term in filter.ToLower().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(sValue => sValue.Trim()).ToArray())
|
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))
|
if (_remoteIPAddress.ToLower().Contains(term) || useragent.ToLower().Contains(term) || language.ToLower().Contains(term))
|
||||||
|
@ -329,11 +322,7 @@
|
||||||
{
|
{
|
||||||
// if enabled use IP Address correlation
|
// if enabled use IP Address correlation
|
||||||
_visitorId = -1;
|
_visitorId = -1;
|
||||||
bool correlate = true;
|
var correlate = bool.Parse(settings.GetValue("VisitorCorrelation", "true"));
|
||||||
if (settings.ContainsKey("VisitorCorrelation") && !string.IsNullOrEmpty(settings["VisitorCorrelation"]))
|
|
||||||
{
|
|
||||||
correlate = bool.Parse(settings["VisitorCorrelation"]);
|
|
||||||
}
|
|
||||||
if (correlate)
|
if (correlate)
|
||||||
{
|
{
|
||||||
visitor = VisitorRepository.GetVisitor(SiteId, _remoteIPAddress);
|
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)
|
private string CreatePWAScript(Alias alias, Site site, Route route)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
|
Loading…
Reference in New Issue
Block a user