public HeaderMap headers() { return response.getHeaders(); }
public HeaderMap headers() { return response.getHeaders(); }
/** * Writes the API response to the HTTP servlet response object. * @param response * @param sresponse */ protected void writeResponse(HttpServletResponse response, ApiResponse sresponse) { response.setStatus(sresponse.getCode()); for (Entry<String, String> entry : sresponse.getHeaders()) { response.addHeader(entry.getKey(), entry.getValue()); } }
public String header(String name) { return this.response.getHeaders().get(name); }
/** * Writes the API response to the HTTP servlet response object. * @param response * @param sresponse */ protected void writeResponse(HttpServletResponse response, ApiResponse sresponse) { response.setStatus(sresponse.getCode()); for (Entry<String, String> entry : sresponse.getHeaders()) { response.addHeader(entry.getKey(), entry.getValue()); } }
public String header(String name) { return this.response.getHeaders().get(name); }
/** * @return the thread-local api response */ public static final ApiResponse getApiResponse() { ApiResponse response = apiResponse.get(); if (response == null) { response = new ApiResponse(); apiResponse.set(response); } response.setCode(0); response.getHeaders().clear(); response.setMessage(null); response.getAttributes().clear(); return response; }
/** * @see io.apiman.gateway.engine.policies.AbstractMappedPolicy#doApply(io.apiman.gateway.engine.beans.ApiResponse, io.apiman.gateway.engine.policy.IPolicyContext, java.lang.Object, io.apiman.gateway.engine.policy.IPolicyChain) */ @Override protected void doApply(ApiResponse response, IPolicyContext context, RateLimitingConfig config, IPolicyChain<ApiResponse> chain) { Map<String, String> headers = context.getAttribute("rate-limit-response-headers", null); //$NON-NLS-1$ if (headers != null) { response.getHeaders().putAll(headers); } super.doApply(response, context, config, chain); }
/** * @return the thread-local api response */ public static final ApiResponse getApiResponse() { ApiResponse response = apiResponse.get(); if (response == null) { response = new ApiResponse(); apiResponse.set(response); } response.setCode(0); response.getHeaders().clear(); response.setMessage(null); response.getAttributes().clear(); return response; }
public static void buildResponse(HttpServerResponse httpServerResponse, ApiResponse amanResponse, HttpVersion httpVersion) { amanResponse.getHeaders().forEach(e -> { if (httpVersion == HttpVersion.HTTP_1_0 || httpVersion == HttpVersion.HTTP_1_1 || !e.getKey().equals("Connection")) { httpServerResponse.headers().add(e.getKey(), e.getValue()); } }); httpServerResponse.setStatusCode(amanResponse.getCode()); httpServerResponse.setStatusMessage(amanResponse.getMessage() == null ? "" : amanResponse.getMessage()); }
/** * @see io.apiman.gateway.engine.io.IWriteStream#end() */ @Override public void end() { try { IOUtils.closeQuietly(outputStream); if (isError) { return; } else if (!connected) { throw new IOException("Not connected."); //$NON-NLS-1$ } outputStream = null; // Process the response, convert to an ApiResponse object, and return it response = GatewayThreadContext.getApiResponse(); // Add headers for (Entry<String, List<String>> headerEntry : connection.getHeaderFields().entrySet()) { String headerName = headerEntry.getKey(); List<String> headerValues = headerEntry.getValue(); if (headerName != null && !connectorConfig.getSuppressedResponseHeaders().contains(headerName)) { response.getHeaders().add(headerName, headerValues); } } response.setCode(connection.getResponseCode()); response.setMessage(connection.getResponseMessage()); responseHandler.handle(AsyncResultImpl.<IApiConnectionResponse> create(this)); } catch (Exception e) { handleConnectionError(e); } }
/** * @see io.apiman.gateway.engine.io.IWriteStream#end() */ @Override public void end() { try { IOUtils.closeQuietly(outputStream); if (isError) { return; } else if (!connected) { throw new IOException("Not connected."); //$NON-NLS-1$ } outputStream = null; // Process the response, convert to an ApiResponse object, and return it response = GatewayThreadContext.getApiResponse(); // Add headers for (Entry<String, List<String>> headerEntry : connection.getHeaderFields().entrySet()) { String headerName = headerEntry.getKey(); List<String> headerValues = headerEntry.getValue(); if (headerName != null && !connectorConfig.getSuppressedResponseHeaders().contains(headerName)) { response.getHeaders().add(headerName, headerValues); } } response.setCode(connection.getResponseCode()); response.setMessage(connection.getResponseMessage()); responseHandler.handle(AsyncResultImpl.<IApiConnectionResponse> create(this)); } catch (Exception e) { handleConnectionError(e); } }
apiResponse.setMessage("OK"); apiResponse.getHeaders().put("Date", new Date().toString()); apiResponse.getHeaders().put("Server", "apiman.policy-test"); apiResponse.getHeaders().put("Content-Type", "application/json"); apiResponse.getHeaders().put("Content-Length", String.valueOf(responseBody.length()));
apiResponse.setMessage("OK"); apiResponse.getHeaders().put("Date", new Date().toString()); apiResponse.getHeaders().put("Server", "apiman.policy-test"); apiResponse.getHeaders().put("Content-Type", "application/json"); apiResponse.getHeaders().put("Content-Length", String.valueOf(responseBody.length()));
/** * @see io.apiman.gateway.engine.policies.AbstractMappedPolicy#doApply(io.apiman.gateway.engine.beans.ApiResponse, io.apiman.gateway.engine.policy.IPolicyContext, java.lang.Object, io.apiman.gateway.engine.policy.IPolicyChain) */ @Override protected void doApply(ApiResponse response, IPolicyContext context, URLRewritingConfig config, IPolicyChain<ApiResponse> chain) { final HeaderMap headers = response.getHeaders(); if (config.isProcessResponseHeaders()) { replaceHeaders(config, headers); } if (config.isProcessResponseBody() && headers.containsKey("Content-Length")) { //$NON-NLS-1$ headers.remove("Content-Length"); //$NON-NLS-1$ } super.doApply(response, context, config, chain); }
public static ApiResponse buildResponse(HttpClientResponse response, Set<String> suppressHeaders) { ApiResponse apimanResponse = new ApiResponse(); apimanResponse.setCode(response.statusCode()); apimanResponse.setMessage(response.statusMessage() == null ? "" : response.statusMessage()); multimapToMap(apimanResponse.getHeaders(), response.headers(), suppressHeaders); return apimanResponse; }
private void handleEngineResult(ApiRequest request, IEngineResult engineResult) { // Everything worked if (engineResult.isResponse()) { ApiResponse response = engineResult.getApiResponse(); HttpApiFactory.buildResponse(vertxResponse, response, vertxRequest.version()); if (!response.getHeaders().containsKey("Content-Length")) { //$NON-NLS-1$ vertxResponse.setChunked(true); } engineResult.bodyHandler(buffer -> { vertxResponse.write((Buffer) buffer.getNativeBuffer()); }); engineResult.endHandler(end -> vertxResponse.end()); } else { // Policy failure (i.e. denial - it's not an exception). log.debug(String.format("Failed with policy failure (denial): %s", engineResult.getPolicyFailure())); //$NON-NLS-1$ handlePolicyFailure(request, engineResult.getPolicyFailure(), vertxResponse); } }
@Override public void handle(IAsyncResult<RateLimitResponse> result) { if (result.isError()) { chain.throwError(result.getError()); } else { RateLimitResponse rtr = result.getResult(); if (!rtr.isAccepted()) { doQuotaExceededFailure(context, config, chain, rtr); } else { Map<String, String> responseHeaders = RateLimitingPolicy.responseHeaders( config, rtr, defaultLimitHeader(), defaultRemainingHeader(), defaultResetHeader()); response.getHeaders().putAll(responseHeaders); chain.doApply(response); } } } });
context.getAttribute(RATE_LIMIT_RESPONSE_ATTR, (RateLimitResponse) null), defaultLimitHeader(), defaultRemainingHeader(), defaultResetHeader()); response.getHeaders().putAll(responseHeaders); chain.doApply(response);