From ba902f4edb64cce2e2d52c0199cd98174d667740 Mon Sep 17 00:00:00 2001 From: maliming Date: Thu, 29 Sep 2022 13:16:35 +0800 Subject: [PATCH] Make sure the culture is valid. Resolve #14174 --- .../Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs | 8 +++++++- .../AspNetCore/Mvc/Localization/AbpLanguagesController.cs | 6 ++++++ .../Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs index 8fc6a3995c..00b3f87056 100644 --- a/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs +++ b/framework/src/Volo.Abp.AspNetCore.MultiTenancy/Volo/Abp/AspNetCore/MultiTenancy/MultiTenancyMiddleware.cs @@ -118,6 +118,12 @@ public class MultiTenancyMiddleware : IMiddleware, ITransientDependency uiCulture = defaultLanguage; } - return new RequestCulture(culture, uiCulture); + if (CultureHelper.IsValidCultureCode(culture) && + CultureHelper.IsValidCultureCode(uiCulture)) + { + return new RequestCulture(culture, uiCulture); + } + + return null; } } diff --git a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs index 9f5d6aa530..8a4f82953a 100644 --- a/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs +++ b/framework/src/Volo.Abp.AspNetCore.Mvc/Volo/Abp/AspNetCore/Mvc/Localization/AbpLanguagesController.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Localization; using Microsoft.AspNetCore.Mvc; using System; +using System.Globalization; using System.Threading.Tasks; using Microsoft.AspNetCore.RequestLocalization; using Volo.Abp.Auditing; @@ -30,6 +31,11 @@ public class AbpLanguagesController : AbpController throw new AbpException("The selected culture is not valid! Make sure you enter a valid culture code."); } + if (!CultureHelper.IsValidCultureCode(uiCulture)) + { + throw new AbpException("The selected uiCulture is not valid! Make sure you enter a valid culture code."); + } + AbpRequestCultureCookieHelper.SetCultureCookie( HttpContext, new RequestCulture(culture, uiCulture) diff --git a/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs b/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs index 74a62116a4..adf2890b21 100644 --- a/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs +++ b/framework/src/Volo.Abp.Core/Volo/Abp/Localization/CultureHelper.cs @@ -47,7 +47,7 @@ public static class CultureHelper try { - CultureInfo.GetCultureInfo(cultureCode); + _ = CultureInfo.GetCultureInfo(cultureCode); return true; } catch (CultureNotFoundException)