You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Colm O hEigeartaigh (Jira)" <ji...@apache.org> on 2019/12/10 11:04:00 UTC
[jira] [Resolved] (CXF-8153) @Path with REGEX in path parameter
and checkMethodsForInvalidURITemplates(userType, methods);
[ https://issues.apache.org/jira/browse/CXF-8153?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Colm O hEigeartaigh resolved CXF-8153.
--------------------------------------
Resolution: Fixed
> @Path with REGEX in path parameter and checkMethodsForInvalidURITemplates(userType, methods);
> ----------------------------------------------------------------------------------------------
>
> Key: CXF-8153
> URL: https://issues.apache.org/jira/browse/CXF-8153
> Project: CXF
> Issue Type: Bug
> Components: JAX-RS
> Affects Versions: 3.3.4
> Reporter: Luís Alves
> Assignee: Colm O hEigeartaigh
> Priority: Minor
> Fix For: 3.4.0, 3.3.5
>
>
> I have an API jar provided by the server, with the interface with all the JAX-RS annotations.
> One of then has an REGEX. Something like:
> {code:java}
> @Path("{ resoureUUID : [0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}}}")
> {code}
> I can't create a proxy because the validation fails. Analyzing the code I get to
> org.apache.cxf.microprofile.client.Validator#checkMethodsForInvalidURITemplates(Class, Method[]), more specifically to this part (with comments):
> {code:java}
> for (Parameter p : method.getParameters()) {
> PathParam pathParam = p.getAnnotation(PathParam.class);
> if (pathParam != null) {
> // don't know the spec, but setting this to "x" cause the URITemplate to
> // throw new IllegalArgumentException("Value '" + sval + "' does not match variable " + var.getName() + " with pattern " + var.getPattern());
> paramMap.put(pathParam.value(), "x");
> }
> }
> try {
> template.substitute(paramMap, Collections.<String>emptySet(), false);
> } catch (IllegalArgumentException ex) {
> throwException("VALIDATION_UNRESOLVED_PATH_PARAMS", userType, method);
> }
> {code}
> Not sure if this is a bug or by spec, but this prevents to use path params with regex, as the only regex that works must match "x".
--
This message was sent by Atlassian Jira
(v8.3.4#803005)