KEYCLOAK-15833 Look for end bracket only if current block is pattern
This commit is contained in:
parent
267f1797d4
commit
9058cc75d9
2 changed files with 37 additions and 1 deletions
|
@ -202,7 +202,9 @@ public abstract class PathMatcher<P> {
|
|||
}
|
||||
}
|
||||
|
||||
i = expectedUri.indexOf('}', i);
|
||||
if (c == '{') {
|
||||
i = expectedUri.indexOf('}', i);
|
||||
}
|
||||
|
||||
if (i == expectedUri.lastIndexOf('}') && onlyFirstParam) {
|
||||
return String.valueOf(matchingUri).substring(0, matchingUriLastIndex);
|
||||
|
|
|
@ -0,0 +1,34 @@
|
|||
package org.keycloak.common.util;
|
||||
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public class PathMatcherTest {
|
||||
|
||||
@Test
|
||||
public void keycloak15833Test() {
|
||||
TestingPathMatcher matcher = new TestingPathMatcher();
|
||||
|
||||
Assert.assertNull(matcher.customBuildUriFromTemplate("/api/v1/{clientId}/campaigns/*/excelFiles", "/api/v1/1/contentConnectorConfigs/29/contentConnectorContents", false));
|
||||
}
|
||||
|
||||
private static final class TestingPathMatcher extends PathMatcher<Object> {
|
||||
|
||||
@Override
|
||||
protected String getPath(Object entry) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Collection<Object> getPaths() {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Make buildUriFromTemplate accessible from test
|
||||
public String customBuildUriFromTemplate(String template, String targetUri, boolean onlyFirstParam) {
|
||||
return buildUriFromTemplate(template, targetUri, onlyFirstParam);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in a new issue