diff --git a/src/Icons/Controllers/IconController.cs b/src/Icons/Controllers/IconsController.cs similarity index 78% rename from src/Icons/Controllers/IconController.cs rename to src/Icons/Controllers/IconsController.cs index f0ba3ee173..205eb565bd 100644 --- a/src/Icons/Controllers/IconController.cs +++ b/src/Icons/Controllers/IconsController.cs @@ -4,17 +4,22 @@ using System.Threading.Tasks; using Bit.Icons.Models; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; +using Microsoft.Extensions.Options; namespace Bit.Icons.Controllers { [Route("")] - public class IconController : Controller + public class IconsController : Controller { private readonly IMemoryCache _memoryCache; + private readonly IconsSettings _iconsSettings; - public IconController(IMemoryCache memoryCache) + public IconsController( + IMemoryCache memoryCache, + IOptions iconsSettingsOptions) { _memoryCache = memoryCache; + _iconsSettings = iconsSettingsOptions.Value; } [HttpGet("")] @@ -57,9 +62,9 @@ namespace Bit.Icons.Controllers return new FileContentResult(icon.Image, icon.Format); } - private static string BuildIconUrl(Uri uri) + private string BuildIconUrl(Uri uri) { - return $"https://icons.bitwarden.com/icon?url={uri.Host}&size=16..24..200"; + return $"{_iconsSettings.BestIconBaseUrl}/icon?url={uri.Host}&size=16..24..200"; } } } diff --git a/src/Icons/IconsSettings.cs b/src/Icons/IconsSettings.cs new file mode 100644 index 0000000000..f550853bfe --- /dev/null +++ b/src/Icons/IconsSettings.cs @@ -0,0 +1,7 @@ +namespace Bit.Icons +{ + public class IconsSettings + { + public virtual string BestIconBaseUrl { get; set; } + } +} diff --git a/src/Icons/Startup.cs b/src/Icons/Startup.cs index bd5302930d..844e7170d7 100644 --- a/src/Icons/Startup.cs +++ b/src/Icons/Startup.cs @@ -17,6 +17,12 @@ namespace Bit.Icons public void ConfigureServices(IServiceCollection services) { + // Options + services.AddOptions(); + + // Settings + services.Configure(Configuration.GetSection("IconsSettings")); + services.AddMemoryCache(); services.AddMvc(); } diff --git a/src/Icons/appsettings.json b/src/Icons/appsettings.json index 26bb0ac7ac..8fe2f8c796 100644 --- a/src/Icons/appsettings.json +++ b/src/Icons/appsettings.json @@ -11,5 +11,8 @@ "Default": "Warning" } } + }, + "iconsSettings": { + "BestIconBaseUrl": "https://icons.better-idea.org" } }