/** * This method checks path of the incoming request, and * redirects following URIs: * <li>/controller -> SiteToSiteResource * @param requestContext request to be modified */ @Override public void filter(ContainerRequestContext requestContext) throws IOException { final UriInfo uriInfo = requestContext.getUriInfo(); if (uriInfo.getPath().equals("controller")){ UriBuilder builder = UriBuilder.fromUri(uriInfo.getBaseUri()) .path(SiteToSiteResource.class) .replaceQuery(uriInfo.getRequestUri().getRawQuery()); URI redirectTo = builder.build(); requestContext.setRequestUri(uriInfo.getBaseUri(), redirectTo); } } }
rc.setRequestUri(uriInfo.getRequestUriBuilder().replacePath(path).build());
rc.setRequestUri(uriInfo.getRequestUriBuilder().replacePath(path).build());
.warn("Rewriting new Request URI {} (incomingBaseUri = {}, incomingReqUri = {})", newReqUri.toString(), incomingBaseUri, incomingReqUri); req.setRequestUri(newReqUri);
ub.queryParam(param.getKey(), param.getValue().toArray()); request.setRequestUri(request.getUriInfo().getBaseUri(), ub.build());
ub.queryParam(param.getKey(), param.getValue().toArray()); request.setRequestUri(request.getUriInfo().getBaseUri(), ub.build());
rc.setRequestUri(uriInfo.getRequestUriBuilder().replacePath(path).build());
requestContext.setRequestUri(newUri);
ub.queryParam(param.getKey(), param.getValue().toArray()); request.setRequestUri(request.getUriInfo().getBaseUri(), ub.build());
@PreMatching public class RoutingFilter implements ContainerRequestFilter { @Override public void filter(ContainerRequestContext requestContext) throws IOException { String headerString = requestContext.getHeaderString("IS_V2"); boolean v2 = headerString != null && headerString.equals("yes"); URI absolutePath = requestContext.getUriInfo().getAbsolutePath(); if(v2) { URI v2Redirect = URI.create(absolutePath.toString().replace("v1", "v2")); requestContext.setRequestUri(v2Redirect); } } }
@Override public void filter(ContainerRequestContext containerRequestContext) throws IOException { if (parameterMap == null || parameterMap.isEmpty()) { return; // Disable filter if this occurs } URI normalizedUri = buildNormalizedUri(containerRequestContext.getUriInfo()); containerRequestContext.setRequestUri(normalizedUri); }
@Override public void filter(ContainerRequestContext reqCtx) throws IOException { String path = reqCtx.getUriInfo().getPath(); if (path.endsWith(openApiJsonPath)) { reqCtx.setRequestUri(URI.create(SWAGGER_PATH)); reqCtx.setProperty(OPEN_API_PROPERTY, Boolean.TRUE); } }
@Override public void filter(ContainerRequestContext rc) throws IOException { if (HttpMethod.GET.equals(rc.getRequest().getMethod())) { UriInfo ui = rc.getUriInfo(); String path = "/" + ui.getPath(); if (PATTERN.matcher(path).matches() && locator.exists(path)) { rc.setRequestUri(URI.create("api-docs" + path)); } } } }
@Override public void filter(ContainerRequestContext rc) throws IOException { if (HttpMethod.GET.equals(rc.getRequest().getMethod())) { UriInfo ui = rc.getUriInfo(); String path = "/" + ui.getPath(); if (PATTERN.matcher(path).matches() && locator.exists(path)) { rc.setRequestUri(URI.create("api-docs" + path)); } } } }
@Test public void filter_EmptyAppPathGiven_ShouldNotUpdateBaseUri() throws IOException { ContainerRequestContext reqContext = mockRequestContext(EXISTING_BASE_URI, REQUEST_URI); createApplicationPathFilter(new ApplicationPathEmpty()).filter(reqContext); verify(reqContext, never()).setRequestUri(any(), any()); verify(reqContext, never()).setRequestUri(any()); }
@Test public void filter_NoAppPathRootGiven_ShouldNotUpdateBaseUri() throws IOException { ContainerRequestContext reqContext = mockRequestContext(EXISTING_BASE_URI, REQUEST_URI); createApplicationPathFilter(new ApplicationPathRoot()).filter(reqContext); verify(reqContext, never()).setRequestUri(any(), any()); verify(reqContext, never()).setRequestUri(any()); }
@Test public void filter_AppPathWithSlashGiven_ShouldUpdateBaseUriWithoutSlashes() throws IOException { ContainerRequestContext reqContext = mockRequestContext(EXISTING_BASE_URI, REQUEST_URI); createApplicationPathFilter(new ApplicationPathTestWithLeadingAndTrailingSlashes()).filter(reqContext); verify(reqContext, times(1)).setRequestUri(TEST_UPDATED_BASE_URI, REQUEST_URI); verify(reqContext, never()).setRequestUri(any()); }
@Test public void filter_AppPathWithMultiplePathsGiven_ShouldUpdateBaseUriWithAllPaths() throws IOException { ContainerRequestContext reqContext = mockRequestContext(EXISTING_BASE_URI, REQUEST_URI); createApplicationPathFilter(new ApplicationPath1AndPath2()).filter(reqContext); verify(reqContext, times(1)).setRequestUri(URI.create("existing-base-uri/path1/path2/"), REQUEST_URI); verify(reqContext, never()).setRequestUri(any()); }
@Test public void filter_AppPathGiven_ShouldUpdateBaseUri() throws IOException { ContainerRequestContext reqContext = mockRequestContext(EXISTING_BASE_URI, REQUEST_URI); createApplicationPathFilter(new ApplicationPathTest()).filter(reqContext); verify(reqContext, times(1)).setRequestUri(TEST_UPDATED_BASE_URI, REQUEST_URI); verify(reqContext, never()).setRequestUri(any()); }
@Test public void filter_PrefixedProxyResourceGiven_ShouldNotUpdateBaseUri() throws IOException { DynamicProxyBasePathFilter filter = createFilter("/base-path/{proxy+}"); ContainerRequestContext containerRequest = createContainerRequest("/", "/whatever"); filter.filter(containerRequest); verify(containerRequest).setRequestUri(URI.create("/base-path/"), URI.create("/whatever")); }