Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Admin API fails to create a mapping with Request Header matching using WildCardMatcher #1167

Closed
kaushiksk opened this issue Sep 7, 2024 · 3 comments
Assignees
Labels

Comments

@kaushiksk
Copy link

Describe the bug

When creating a mapping that contains wildcard match on a specific header, the mapping is not created, API returns 201.
The created mapping is not returned in GET __admin/mappings.

Expected behavior:

Header match mapping should appear when querying GET __admin/mappings.

Test to reproduce

POST /__admin/mappings

{
  "Guid": "419c3832-9fb6-4998-9a86-8edc57af65ff",
  "Title": "Header based routing",
  "Request": {
    "Headers": [
      {
        "Name": "myheader",
        "Matchers": [
          {
            "Name": "WildcardMatcher",
            "Pattern": "*aaaaaa*",
          }
        ],
      }
    ],
  },
  "Response": {
    "ProxyUrl": "http://localhost:9124",
  },
}

Response: 201 Created

{
  "Status": "Mapping added"
}

Get /__admin/mappings does not return this mapping.
I am able to get other mappings that are created on path etc. using WildCardMatcher.

@kaushiksk kaushiksk added the bug label Sep 7, 2024
@kaushiksk kaushiksk changed the title Admin API fails to create a mapping with Request Body matching using WildCardMatcher Admin API fails to create a mapping with Request Header matching using WildCardMatcher Sep 7, 2024
@StefH
Copy link
Collaborator

StefH commented Sep 8, 2024

@kaushiksk
The reason is:
The Path or Url matcher is missing for this mapping, this mapping will not be added.

However I cannot remember anymore why I build it like this.... I need to check if there is a technical reason for this or a business reason...

@kaushiksk
Copy link
Author

kaushiksk commented Sep 8, 2024

This works when I configure it directly in code as below:

mockServer
    .Given(Request.Create().WithHeader("myheader", new WildcardMatcher($"*aaaaaa*")))
    .WithTitle("Header based routing")
    .RespondWith(Response.Create().WithProxy(mockServerEndpoint));

With this mapping, the wiremock server is able to do exactly what I intend, I validated from logs that my requests are successfully being matched and proxied. In fact, this is how I figured out the exact payload to send to the POST /__admin/mappings API (I got it from Get /__admin/mappings once the server was running).

So it seems like something that is only missing in the Admin API?

@StefH StefH self-assigned this Sep 9, 2024
@StefH
Copy link
Collaborator

StefH commented Sep 9, 2024

#1169

@StefH StefH closed this as completed Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants