/** * @see io.apiman.gateway.engine.policies.AbstractMappedPolicy#doApply(io.apiman.gateway.engine.beans.ApiRequest, io.apiman.gateway.engine.policy.IPolicyContext, java.lang.Object, io.apiman.gateway.engine.policy.IPolicyChain) */ @Override protected void doApply(ApiRequest request, IPolicyContext context, URLRewritingConfig config, IPolicyChain<ApiRequest> chain) { if (config.isProcessRequestUrl()) { request.setDestination(request.getDestination().replaceAll(config.getFromRegex(), config.getToReplacement())); } if (config.isProcessRequestHeaders()) { replaceHeaders(config, request.getHeaders()); } super.doApply(request, context, config, chain); }
/** * @return the thread-local api request */ public static final ApiRequest getApiRequest() { ApiRequest request = apiRequest.get(); if (request == null) { request = new ApiRequest(); apiRequest.set(request); } request.setApiKey(null); request.setUrl(null); request.setDestination(null); request.getHeaders().clear(); request.setRawRequest(null); request.setRemoteAddr(null); request.setType(null); request.setTransportSecure(false); return request; }
/** * @return the thread-local api request */ public static final ApiRequest getApiRequest() { ApiRequest request = apiRequest.get(); if (request == null) { request = new ApiRequest(); apiRequest.set(request); } request.setApiKey(null); request.setUrl(null); request.setDestination(null); request.getHeaders().clear(); request.setRawRequest(null); request.setRemoteAddr(null); request.setType(null); request.setTransportSecure(false); return request; }
ApiRequest srequest = tester.createApiRequest(); srequest.setUrl("http://localhost:8080" + ptRequest.resource()); //$NON-NLS-1$ srequest.setDestination(ptRequest.resource()); srequest.setType(ptRequest.method().name()); srequest.getHeaders().putAll(ptRequest.headers());
ApiRequest srequest = tester.createApiRequest(); srequest.setUrl("http://localhost:8080" + ptRequest.resource()); //$NON-NLS-1$ srequest.setDestination(ptRequest.resource()); srequest.setType(ptRequest.method().name()); srequest.getHeaders().putAll(ptRequest.headers());
/** * Reads a {@link ApiRequest} from information found in the inbound * portion of the http request. * @param request the undertow http server request * @return a valid {@link ApiRequest} * @throws IOException */ protected ApiRequest readRequest(HttpServletRequest request) throws Exception { ApiRequestPathInfo pathInfo = getEngine().getApiRequestPathParser().parseEndpoint(request.getPathInfo(), wrapMultiMap(request));//parseApiRequestPath(request); if (pathInfo.orgId == null) { throw new Exception(Messages.i18n.format("GatewayServlet.InvalidApiEndpoint")); //$NON-NLS-1$ } QueryMap queryParams = parseApiRequestQueryParams(request.getQueryString()); String apiKey = getApiKey(request, queryParams); ApiRequest srequest = GatewayThreadContext.getApiRequest(); srequest.setApiKey(apiKey); srequest.setApiOrgId(pathInfo.orgId); srequest.setApiId(pathInfo.apiId); srequest.setApiVersion(pathInfo.apiVersion); srequest.setUrl(request.getRequestURL().toString()); srequest.setDestination(pathInfo.resource); srequest.setQueryParams(queryParams); readHeaders(srequest, request); srequest.setRawRequest(request); srequest.setRemoteAddr(request.getRemoteAddr()); srequest.setTransportSecure(request.isSecure()); return srequest; }
/** * Reads a {@link ApiRequest} from information found in the inbound * portion of the http request. * @param request the undertow http server request * @return a valid {@link ApiRequest} * @throws IOException */ protected ApiRequest readRequest(HttpServletRequest request) throws Exception { ApiRequestPathInfo pathInfo = getEngine().getApiRequestPathParser().parseEndpoint(request.getPathInfo(), wrapMultiMap(request));//parseApiRequestPath(request); if (pathInfo.orgId == null) { throw new Exception(Messages.i18n.format("GatewayServlet.InvalidApiEndpoint")); //$NON-NLS-1$ } QueryMap queryParams = parseApiRequestQueryParams(request.getQueryString()); String apiKey = getApiKey(request, queryParams); ApiRequest srequest = GatewayThreadContext.getApiRequest(); srequest.setApiKey(apiKey); srequest.setApiOrgId(pathInfo.orgId); srequest.setApiId(pathInfo.apiId); srequest.setApiVersion(pathInfo.apiVersion); srequest.setUrl(request.getRequestURL().toString()); srequest.setDestination(pathInfo.resource); srequest.setQueryParams(queryParams); readHeaders(srequest, request); srequest.setRawRequest(request); srequest.setRemoteAddr(request.getRemoteAddr()); srequest.setTransportSecure(request.isSecure()); return srequest; }
private static void parsePath(HttpServerRequest request, ApiRequest apimanRequest) { // NB: The apiman version of the headers has already been parsed, so the headers have already been filtered/modified. // Therefore we wrap the original inbound headers (just get) to efficiently access the necessary data. ApiRequestPathInfo parsedPath = requestPathParser.parseEndpoint(request.path(), wrapMultiMap(request.headers())); apimanRequest.setApiOrgId(parsedPath.orgId); apimanRequest.setApiId(parsedPath.apiId); apimanRequest.setApiVersion(parsedPath.apiVersion); apimanRequest.setUrl(request.absoluteURI()); apimanRequest.setDestination(parsedPath.resource); }