Skip to content

Commit b267e6d

Browse files
committed
Fix URL matching in CrudApiPlugin to exclude query parameters
1 parent 086be81 commit b267e6d

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

DevProxy.Plugins/Mocking/CrudApiPlugin.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ private async Task SetupOpenIdConnectConfigurationAsync()
266266
return $"(?<{paramName}>[^/&]+)";
267267
});
268268

269+
var requestUrlWithoutQuery = request.RequestUri.GetLeftPart(UriPartial.Path);
269270
var parameters = new Dictionary<string, string>();
270271
var action = Configuration.Actions.FirstOrDefault(action =>
271272
{
@@ -276,7 +277,7 @@ private async Task SetupOpenIdConnectConfigurationAsync()
276277

277278
var absoluteActionUrl = (Configuration.BaseUrl + action.Url).Replace("//", "/", 8);
278279

279-
if (absoluteActionUrl == request.Url)
280+
if (absoluteActionUrl == requestUrlWithoutQuery)
280281
{
281282
return true;
282283
}
@@ -290,7 +291,7 @@ private async Task SetupOpenIdConnectConfigurationAsync()
290291

291292
// convert parameters into named regex groups
292293
var urlRegex = Regex.Replace(Regex.Escape(absoluteActionUrl).Replace("\\{", "{", StringComparison.OrdinalIgnoreCase), "({[^}]+})", parameterMatchEvaluator);
293-
var match = Regex.Match(request.Url, urlRegex);
294+
var match = Regex.Match(requestUrlWithoutQuery, urlRegex);
294295
if (!match.Success)
295296
{
296297
return false;

0 commit comments

Comments
 (0)