From ff16c69d59f55ae545dbca85632a5ddc080807c7 Mon Sep 17 00:00:00 2001 From: Joseph Doherty Date: Tue, 18 Aug 2026 05:14:58 -0400 Subject: [PATCH] fix(config): propagate GroupToTag's comparer into the effective-config projection --- .../Configuration/GatewayConfigurationProvider.cs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/ZB.MOM.WW.MxGateway.Server/Configuration/GatewayConfigurationProvider.cs b/src/ZB.MOM.WW.MxGateway.Server/Configuration/GatewayConfigurationProvider.cs index 0b30aa0..169769a 100644 --- a/src/ZB.MOM.WW.MxGateway.Server/Configuration/GatewayConfigurationProvider.cs +++ b/src/ZB.MOM.WW.MxGateway.Server/Configuration/GatewayConfigurationProvider.cs @@ -64,12 +64,13 @@ public sealed class GatewayConfigurationProvider(IOptions option ShowTagValues: value.Dashboard.ShowTagValues, GroupToRole: value.Dashboard.GroupToRole, // Rebuilt rather than passed through because the value type widens from string[] - // to IReadOnlyList; the comparer is carried over so the projected map - // still matches LDAP group names in whatever case the directory returns them. + // to IReadOnlyList; the source dictionary's own comparer is carried over + // (case-insensitive by default) so the projected map still matches LDAP group + // names in whatever case the directory returns them. GroupToTag: value.Dashboard.GroupToTag.ToDictionary( pair => pair.Key, pair => (IReadOnlyList)pair.Value, - StringComparer.OrdinalIgnoreCase), + value.Dashboard.GroupToTag.Comparer), UntaggedSessionVisibility: value.Dashboard.UntaggedSessionVisibility), Protocol: new EffectiveProtocolConfiguration( value.Protocol.WorkerProtocolVersion,