SEBWIN-220: Moved SEB URI schemes to global application configuration.
This commit is contained in:
parent
72425f0d6c
commit
02d69005c0
5 changed files with 28 additions and 6 deletions
|
@ -59,7 +59,7 @@ namespace SafeExamBrowser.Browser
|
|||
Id = Guid.NewGuid();
|
||||
downloadHandler.ConfigurationDownloadRequested += (fileName, args) => ConfigurationDownloadRequested?.Invoke(fileName, args);
|
||||
|
||||
control = new BrowserControl(settings, text);
|
||||
control = new BrowserControl(appConfig, settings, text);
|
||||
control.AddressChanged += Control_AddressChanged;
|
||||
control.LoadingStateChanged += Control_LoadingStateChanged;
|
||||
control.TitleChanged += Control_TitleChanged;
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
using System;
|
||||
using CefSharp.WinForms;
|
||||
using SafeExamBrowser.Browser.Handlers;
|
||||
using SafeExamBrowser.Contracts.Configuration;
|
||||
using SafeExamBrowser.Contracts.I18n;
|
||||
using SafeExamBrowser.Contracts.UserInterface.Browser;
|
||||
using SafeExamBrowser.Contracts.UserInterface.Browser.Events;
|
||||
|
@ -18,6 +19,7 @@ namespace SafeExamBrowser.Browser
|
|||
{
|
||||
internal class BrowserControl : ChromiumWebBrowser, IBrowserControl
|
||||
{
|
||||
private AppConfig appConfig;
|
||||
private BrowserSettings settings;
|
||||
private IText text;
|
||||
|
||||
|
@ -43,8 +45,9 @@ namespace SafeExamBrowser.Browser
|
|||
remove { titleChanged -= value; }
|
||||
}
|
||||
|
||||
public BrowserControl(BrowserSettings settings, IText text) : base(settings.StartUrl)
|
||||
public BrowserControl(AppConfig appConfig, BrowserSettings settings, IText text) : base(settings.StartUrl)
|
||||
{
|
||||
this.appConfig = appConfig;
|
||||
this.settings = settings;
|
||||
this.text = text;
|
||||
}
|
||||
|
@ -57,7 +60,7 @@ namespace SafeExamBrowser.Browser
|
|||
|
||||
KeyboardHandler = new KeyboardHandler(settings);
|
||||
MenuHandler = new ContextMenuHandler(settings, text);
|
||||
RequestHandler = new RequestHandler();
|
||||
RequestHandler = new RequestHandler(appConfig);
|
||||
}
|
||||
|
||||
public void NavigateBackwards()
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
using System;
|
||||
using CefSharp;
|
||||
using CefSharp.Handler;
|
||||
using SafeExamBrowser.Contracts.Configuration;
|
||||
|
||||
namespace SafeExamBrowser.Browser.Handlers
|
||||
{
|
||||
|
@ -17,16 +18,22 @@ namespace SafeExamBrowser.Browser.Handlers
|
|||
/// </remarks>
|
||||
internal class RequestHandler : DefaultRequestHandler
|
||||
{
|
||||
private AppConfig appConfig;
|
||||
|
||||
internal RequestHandler(AppConfig appConfig)
|
||||
{
|
||||
this.appConfig = appConfig;
|
||||
}
|
||||
|
||||
public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
|
||||
{
|
||||
var uri = new Uri(request.Url);
|
||||
|
||||
// TODO: Move to globals -> SafeExamBrowserUriScheme, SafeExamBrowserSecureUriScheme
|
||||
if (uri.Scheme == "seb")
|
||||
if (uri.Scheme == appConfig.SebUriScheme)
|
||||
{
|
||||
request.Url = new UriBuilder(uri) { Scheme = Uri.UriSchemeHttp }.ToString();
|
||||
}
|
||||
else if (uri.Scheme == "sebs")
|
||||
else if (uri.Scheme == appConfig.SebUriSchemeSecure)
|
||||
{
|
||||
request.Url = new UriBuilder(uri) { Scheme = Uri.UriSchemeHttps }.ToString();
|
||||
}
|
||||
|
|
|
@ -123,6 +123,8 @@ namespace SafeExamBrowser.Configuration
|
|||
appConfig.RuntimeId = Guid.NewGuid();
|
||||
appConfig.RuntimeAddress = $"{BASE_ADDRESS}/runtime/{Guid.NewGuid()}";
|
||||
appConfig.RuntimeLogFile = Path.Combine(logFolder, $"{logFilePrefix}_Runtime.txt");
|
||||
appConfig.SebUriScheme = "seb";
|
||||
appConfig.SebUriSchemeSecure = "sebs";
|
||||
appConfig.ServiceAddress = $"{BASE_ADDRESS}/service";
|
||||
}
|
||||
|
||||
|
|
|
@ -106,6 +106,16 @@ namespace SafeExamBrowser.Contracts.Configuration
|
|||
/// </summary>
|
||||
public string RuntimeLogFile { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The URI scheme for SEB resources.
|
||||
/// </summary>
|
||||
public string SebUriScheme { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The URI scheme for secure SEB resources.
|
||||
/// </summary>
|
||||
public string SebUriSchemeSecure { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The communication address of the service component.
|
||||
/// </summary>
|
||||
|
|
Loading…
Reference in a new issue