fix: improve URI template matching to properly escape special characters (#599)
- Enhanced DefaultMcpUriTemplateManager to use Pattern.quote() for escaping special regex characters like '?'
- Replaced simple string replacement regex generation with robust pattern building
- Added test case to verify URI matching with query parameters (e.g., "file://name/search?={search}")
- Fixed typo: renamed DeafaultMcpUriTemplateManagerFactory to DefaultMcpUriTemplateManagerFactory
- Updated all references across server classes and tests
Signed-off-by: Christian Tzolov <christian.tzolov@broadcom.com>
This commit is contained in:
parent
a63d32a5ea
commit
19a8c00a47
1 changed files with 43 additions and 16 deletions
|
|
@ -12,7 +12,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import io.modelcontextprotocol.util.DeafaultMcpUriTemplateManagerFactory;
|
||||
import io.modelcontextprotocol.util.DefaultMcpUriTemplateManagerFactory;
|
||||
import io.modelcontextprotocol.util.McpUriTemplateManager;
|
||||
import io.modelcontextprotocol.util.McpUriTemplateManagerFactory;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
|
|
@ -29,7 +29,7 @@ public class McpUriTemplateManagerTests {
|
|||
|
||||
@BeforeEach
|
||||
void setUp() {
|
||||
this.uriTemplateFactory = new DeafaultMcpUriTemplateManagerFactory();
|
||||
this.uriTemplateFactory = new DefaultMcpUriTemplateManagerFactory();
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
@ -94,4 +94,13 @@ public class McpUriTemplateManagerTests {
|
|||
assertFalse(uriTemplateManager.matches("/api/users/123/comments/456"));
|
||||
}
|
||||
|
||||
@Test
|
||||
void shouldMatchUriWithQueryParameters() {
|
||||
String templateWithQuery = "file://name/search?={search}";
|
||||
var uriTemplateManager = this.uriTemplateFactory.create(templateWithQuery);
|
||||
|
||||
assertTrue(uriTemplateManager.matches("file://name/search?=abcd"),
|
||||
"Should correctly match a URI containing query parameters.");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue