SEBWIN-220: Moved SEB URI schemes to global application configuration.

This commit is contained in:
dbuechel 2018-08-14 09:06:35 +02:00
parent 72425f0d6c
commit 02d69005c0
5 changed files with 28 additions and 6 deletions

View file

@ -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;

View file

@ -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()

View file

@ -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();
}

View file

@ -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";
}

View file

@ -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>