From 709f6e870ef5a90f6c6de8b5d6f814504739b667 Mon Sep 17 00:00:00 2001 From: Quinten Van Assche Date: Thu, 11 Jan 2024 11:41:39 +0100 Subject: [PATCH] feat: or-2035 remove HtmlSanitizer --- AssociationRegistry.sln | 1 - paket.dependencies | 2 -- paket.lock | 10 +--------- .../Extensions/FluentValidatorExtensions.cs | 7 ------- .../Infrastructure/Validation/ValidatorHelpers.cs | 11 +++++++++++ .../TeWijzigenMaatschappelijkeZetelValidator.cs | 1 + .../TeWijzigenVertegenwoordigerValidator.cs | 1 + .../WijzigBasisgegevensRequestValidator.cs | 1 + .../WijzigBasisgegevensRequestValidator.cs | 1 + src/AssociationRegistry.Admin.Api/paket.references | 1 - test/AssociationRegistry.Test/paket.references | 1 - 11 files changed, 16 insertions(+), 21 deletions(-) diff --git a/AssociationRegistry.sln b/AssociationRegistry.sln index 0ea4a85fe..759113309 100644 --- a/AssociationRegistry.sln +++ b/AssociationRegistry.sln @@ -12,7 +12,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = ".Solution Items", ".Solutio build.fsx = build.fsx global.json = global.json paket.dependencies = paket.dependencies - paket.lock = paket.lock SolutionInfo.cs = SolutionInfo.cs .gitignore = .gitignore package.json = package.json diff --git a/paket.dependencies b/paket.dependencies index 66d3e7548..b2a48b05b 100644 --- a/paket.dependencies +++ b/paket.dependencies @@ -54,7 +54,6 @@ nuget Be.Vlaanderen.Basisregisters.DataDog.Tracing.Sql 5.0.0 nuget Be.Vlaanderen.Basisregisters.DataDog.Tracing.SqlStreamStore 5.0.0 nuget Destructurama.JsonNet 2.0.0 -nuget HtmlSanitizer // FIX SWASHBUCKLE ASSEMBLY VERSION MISMATCH nuget Swashbuckle.AspNetCore.SwaggerGen 6.3.0 @@ -135,4 +134,3 @@ group Testing nuget Microsoft.Extensions.DependencyInjection 6.0.0 nuget System.Collections.Immutable ~> 7.0 - diff --git a/paket.lock b/paket.lock index 0d82af3e5..9c8e67fda 100644 --- a/paket.lock +++ b/paket.lock @@ -1,11 +1,6 @@ RESTRICTION: || (== net472) (== net6.0) NUGET remote: https://api.nuget.org/v3/index.json - AngleSharp (0.16.1) - System.Buffers (>= 4.5.1) - System.Text.Encoding.CodePages (>= 5.0) - AngleSharp.Css (0.16.1) - AngleSharp (>= 0.16) AspNetCore.HealthChecks.SqlServer (6.0.2) Microsoft.Data.SqlClient (>= 3.0.1) Microsoft.Extensions.Diagnostics.HealthChecks (>= 6.0) @@ -469,9 +464,6 @@ NUGET Microsoft.Extensions.Logging.Abstractions (>= 3.0.3) Grpc.Net.Common (2.50) - restriction: || (&& (== net472) (>= netstandard2.1)) (== net6.0) Grpc.Core.Api (>= 2.50) - HtmlSanitizer (6.0.453) - AngleSharp (0.16.1) - AngleSharp.Css (0.16.1) Humanizer.Core (2.14.1) - restriction: || (&& (== net472) (>= net6.0)) (== net6.0) IdentityModel (6.0) - restriction: || (&& (== net472) (>= netcoreapp3.1)) (== net6.0) IdentityModel.AspNetCore.OAuth2Introspection (6.0) @@ -1423,7 +1415,7 @@ NUGET Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) Microsoft.NETCore.Targets (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) System.Runtime (>= 4.3) - restriction: || (&& (== net472) (< net45)) (== net6.0) - System.Text.Encoding.CodePages (6.0) + System.Text.Encoding.CodePages (6.0) - restriction: || (&& (== net472) (>= net6.0)) (== net6.0) System.Runtime.CompilerServices.Unsafe (>= 6.0) System.Text.Encoding.Extensions (4.3) - restriction: || (&& (== net472) (>= net6.0)) (== net6.0) Microsoft.NETCore.Platforms (>= 1.1) - restriction: || (&& (== net472) (< net45)) (== net6.0) diff --git a/src/AssociationRegistry.Admin.Api/Infrastructure/Extensions/FluentValidatorExtensions.cs b/src/AssociationRegistry.Admin.Api/Infrastructure/Extensions/FluentValidatorExtensions.cs index 78be09686..e39550e24 100644 --- a/src/AssociationRegistry.Admin.Api/Infrastructure/Extensions/FluentValidatorExtensions.cs +++ b/src/AssociationRegistry.Admin.Api/Infrastructure/Extensions/FluentValidatorExtensions.cs @@ -19,12 +19,5 @@ public static async Task NullValidateAndThrowAsync( await validator.ValidateAndThrowAsync(instance, cancellationToken); } - public static IRuleBuilder MustNotContainHtml(this IRuleBuilder ruleBuilder) - => ruleBuilder - .Must(NotContainHtml) - .WithErrorCode(StatusCodes.Status400BadRequest.ToString()) - .WithMessage(ExceptionMessages.UnsupportedContent); - private static bool NotContainHtml(string? propertyValue) - => propertyValue is null ? true : !Regex.IsMatch(propertyValue, pattern: "<.*?>"); } diff --git a/src/AssociationRegistry.Admin.Api/Infrastructure/Validation/ValidatorHelpers.cs b/src/AssociationRegistry.Admin.Api/Infrastructure/Validation/ValidatorHelpers.cs index 6125d5ee0..e443979a0 100644 --- a/src/AssociationRegistry.Admin.Api/Infrastructure/Validation/ValidatorHelpers.cs +++ b/src/AssociationRegistry.Admin.Api/Infrastructure/Validation/ValidatorHelpers.cs @@ -4,6 +4,8 @@ namespace AssociationRegistry.Admin.Api.Infrastructure.Validation; using System.Linq.Expressions; using FluentValidation; using FluentValidation.Internal; +using Microsoft.AspNetCore.Http; +using System.Text.RegularExpressions; public static class ValidatorHelpers { @@ -35,4 +37,13 @@ public static void RequireValidKboNummer(this AbstractValidator validator, .WithMessage($"'{expression.GetMember().Name}' moet 10 cijfers bevatten.") .When(request => !string.IsNullOrEmpty(expression.Compile().Invoke(request))); } + + public static IRuleBuilder MustNotContainHtml(this IRuleBuilder ruleBuilder) + => ruleBuilder + .Must(NotContainHtml) + .WithErrorCode(StatusCodes.Status400BadRequest.ToString()) + .WithMessage(ExceptionMessages.UnsupportedContent); + + private static bool NotContainHtml(string? propertyValue) + => propertyValue is null || !Regex.IsMatch(propertyValue, pattern: "<.*?>"); } diff --git a/src/AssociationRegistry.Admin.Api/Verenigingen/Locaties/VerenigingMetRechtspersoonlijkheid/WijzigMaatschappelijkeZetel/RequestModels/TeWijzigenMaatschappelijkeZetelValidator.cs b/src/AssociationRegistry.Admin.Api/Verenigingen/Locaties/VerenigingMetRechtspersoonlijkheid/WijzigMaatschappelijkeZetel/RequestModels/TeWijzigenMaatschappelijkeZetelValidator.cs index 5d5354960..aeaec92fb 100644 --- a/src/AssociationRegistry.Admin.Api/Verenigingen/Locaties/VerenigingMetRechtspersoonlijkheid/WijzigMaatschappelijkeZetel/RequestModels/TeWijzigenMaatschappelijkeZetelValidator.cs +++ b/src/AssociationRegistry.Admin.Api/Verenigingen/Locaties/VerenigingMetRechtspersoonlijkheid/WijzigMaatschappelijkeZetel/RequestModels/TeWijzigenMaatschappelijkeZetelValidator.cs @@ -2,6 +2,7 @@ using FluentValidation; using Infrastructure.Extensions; +using Infrastructure.Validation; public class TeWijzigenMaatschappelijkeZetelValidator : AbstractValidator { diff --git a/src/AssociationRegistry.Admin.Api/Verenigingen/Vertegenwoordigers/FeitelijkeVereniging/WijzigVertegenwoordiger/RequestModels/TeWijzigenVertegenwoordigerValidator.cs b/src/AssociationRegistry.Admin.Api/Verenigingen/Vertegenwoordigers/FeitelijkeVereniging/WijzigVertegenwoordiger/RequestModels/TeWijzigenVertegenwoordigerValidator.cs index 712b3ae93..ba4c0ea3d 100644 --- a/src/AssociationRegistry.Admin.Api/Verenigingen/Vertegenwoordigers/FeitelijkeVereniging/WijzigVertegenwoordiger/RequestModels/TeWijzigenVertegenwoordigerValidator.cs +++ b/src/AssociationRegistry.Admin.Api/Verenigingen/Vertegenwoordigers/FeitelijkeVereniging/WijzigVertegenwoordiger/RequestModels/TeWijzigenVertegenwoordigerValidator.cs @@ -2,6 +2,7 @@ using FluentValidation; using Infrastructure.Extensions; +using Infrastructure.Validation; public class TeWijzigenVertegenwoordigerValidator : AbstractValidator { diff --git a/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/FeitelijkeVereniging/RequestModels/WijzigBasisgegevensRequestValidator.cs b/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/FeitelijkeVereniging/RequestModels/WijzigBasisgegevensRequestValidator.cs index 1e8df20d9..17d6cfb59 100644 --- a/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/FeitelijkeVereniging/RequestModels/WijzigBasisgegevensRequestValidator.cs +++ b/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/FeitelijkeVereniging/RequestModels/WijzigBasisgegevensRequestValidator.cs @@ -4,6 +4,7 @@ namespace AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.Feiteli using Common; using FluentValidation; using Infrastructure.Extensions; +using Infrastructure.Validation; using System.Linq; public class WijzigBasisgegevensRequestValidator : AbstractValidator diff --git a/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/MetRechtspersoonlijkheid/RequestModels/WijzigBasisgegevensRequestValidator.cs b/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/MetRechtspersoonlijkheid/RequestModels/WijzigBasisgegevensRequestValidator.cs index 61a10f89b..80f4d8d02 100644 --- a/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/MetRechtspersoonlijkheid/RequestModels/WijzigBasisgegevensRequestValidator.cs +++ b/src/AssociationRegistry.Admin.Api/Verenigingen/WijzigBasisgegevens/MetRechtspersoonlijkheid/RequestModels/WijzigBasisgegevensRequestValidator.cs @@ -4,6 +4,7 @@ namespace AssociationRegistry.Admin.Api.Verenigingen.WijzigBasisgegevens.MetRech using Common; using FluentValidation; using Infrastructure.Extensions; +using Infrastructure.Validation; using System.Linq; public class WijzigBasisgegevensRequestValidator : AbstractValidator diff --git a/src/AssociationRegistry.Admin.Api/paket.references b/src/AssociationRegistry.Admin.Api/paket.references index 114262a4b..2792d32c9 100755 --- a/src/AssociationRegistry.Admin.Api/paket.references +++ b/src/AssociationRegistry.Admin.Api/paket.references @@ -5,7 +5,6 @@ Be.Vlaanderen.Basisregisters.DataDog.Tracing.Autofac Be.Vlaanderen.Basisregisters.BlobStore AspNetCore.HealthChecks.SqlServer -HtmlSanitizer IdentityModel.AspNetCore.OAuth2Introspection Marten Marten.CommandLine diff --git a/test/AssociationRegistry.Test/paket.references b/test/AssociationRegistry.Test/paket.references index 3865410b4..ab209e49d 100644 --- a/test/AssociationRegistry.Test/paket.references +++ b/test/AssociationRegistry.Test/paket.references @@ -6,7 +6,6 @@ Be.Vlaanderen.Basisregisters.EventHandling.Autofac AutoFixture FluentAssertions FluentAssertions.Json -HtmlSanitizer Marten Moq Microsoft.AspNetCore.Mvc.Testing