private Transferable replaceEndPointUrlBy(URL endpointUrl, URL facadeUrl, Transferable transferable) { String contentType = (String) transferable.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); if (!contentType.contains("xml") && !contentType.contains("text")) return transferable; String charset = (String) transferable.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTCHARSET); String payloadString = transferable.getPayload().toString(); String responseWithFacadeUrls = payloadString.replaceAll(Pattern.quote(endpointUrl.toString())+"(&)*", facadeUrl.toString()+"?"); TextualPayload payloadWithFacadeUrls = new TextualPayload(responseWithFacadeUrls,charset); transferable.setPayload(payloadWithFacadeUrls); return transferable; }
private void setPayloadAsStreamPayload(Transferable requestTransferable) throws IOException { ByteArrayInputStream bais = new ByteArrayInputStream(base64DecodePayload(requestTransferable.getPayload())); requestTransferable.setPayload(new StreamPayload(bais, "UTF-8")); }
Payload pPayload = requestTransferable.getPayload();
String lPayloadAsString = pResponse.getResponse().getPayload().toString(); String lUSerInfo = getUserDesignator(pSubject);
public Transferable handleException(Exception e, Transferable req) { // get the errorType Payload reqPayload = req.getPayload(); QueryStringPayload queryString = null; // Return if the request structure does not meet our needs if (!(reqPayload instanceof QueryStringPayload)) { try { reqPayload = new QueryStringPayload(req.toString()); } catch (Exception ex) { return createDefaultError(); } } queryString = (QueryStringPayload) reqPayload; // might be more than one! String exceptionType = queryString.getParameterValue("EXCEPTIONS"); exceptionType = (exceptionType == null) ? "XML" : exceptionType.toUpperCase(); Transferable response = null; if (exceptionType.indexOf("BLANK") != -1) { response = generateErrorImage(queryString, null, false); } else if (exceptionType.indexOf("INIMAGE") != -1) { response = generateErrorImage(queryString, ServiceException.ERROR_MESSAGE, true); } else { response = createDefaultError(); } return response; }
lQueryString.append(preconfiguredQuery); String payloadQuery = requestTransferable.getPayload().toString(); if (payloadQuery != null && payloadQuery.length() > 0) { if (lQueryString.length() > 0) {
if ((pRequest.getPayload() instanceof QueryStringPayload)) { QueryStringPayload qpayload = (QueryStringPayload) pRequest.getPayload(); addQueryStringPayload(postRequest, qpayload); } else { postRequest.content(new InputStreamHTTPContentWriter(pRequest.getPayload().getAsStream())); LOG.debug("Request Body:\n{}", pRequest.getPayload().toString());
private Transferable forwardPost(Transferable owsRequest) throws ServiceException { PostMethod method = new PostMethod(getURL().toString()); String contentType = (String) owsRequest.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); method.setRequestEntity(new InputStreamRequestEntity(owsRequest.getPayload().getAsStream(), contentType)); Transferable trans; try { trans = initBasicResponseTransferable(method); } catch (Exception e) { throw new ServiceException(String.format("Could not send basic GET request to <%s>.", getURL()), ServiceException.SERVICE_ERROR, e); } finally { method.releaseConnection(); } return trans; }
/** * @param owsRequest * @return * @throws ServiceException */ private Transferable forwardGet(Transferable owsRequest) throws ServiceException { GetMethod method = new GetMethod(getURL().toString()); Payload payload = owsRequest.getPayload(); String baseQueryString = method.getQueryString(); if (baseQueryString != null && baseQueryString.length() > 0) { baseQueryString = baseQueryString + "&" + payload.toString(); } else { baseQueryString = payload.toString(); } method.setQueryString(baseQueryString); Transferable trans; try { trans = initBasicResponseTransferable(method); } catch (Exception e) { throw new ServiceException(String.format("Could not send basic GET request to <%s>.", getURL()), ServiceException.SERVICE_ERROR, e); } finally { method.releaseConnection(); } return trans; }
charset = determineCharsetFromHTMLContent(responseTransferable.getPayload().toString()); responseTransferable.getPayload().getAsStream(), charset); LOG.trace(responseTransferable.getPayload().toString()); } else { LOG.trace("Response of Content-Type <" + contentType + "> won't be logged as it is expected to be binary content.");
private void forwardResponse(FacadeResponse facadeResponse, Transferable serverResponse) throws IOException { addGzipHeaderIfAccepted(facadeResponse, serverResponse); facadeResponse.handleFacadeResponseHeaders(serverResponse); OutputStream outputStream = facadeResponse.getOutputStream(); outputStream = makeGzipStreamIfAccepted(facadeResponse, outputStream); pipeStream(serverResponse.getPayload().getAsStream(), outputStream); }
LOG.debug(lRes.getPayload().toString());
String capContent = filterDocument(subject, response.getPayload().toString(), checkedBaseUrl);
public Transferable doResponse(Subject subject, InterceptorResponse iresponse) throws InterceptorException, EnforcementServiceException { SecuredServiceRequest req = iresponse.getRequest(); Transferable res = iresponse.getResponse(); String lMimeType = (String) res.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); // is this a textual document that might contain urls of a secured // service if (lMimeType.indexOf("text") != -1 || lMimeType.indexOf("xml") != -1) { String lServiceEndpoint = ((HttpRequestForward) req.getForward()).getServiceEndpoint(); String lFacadeUrl = ((HttpRequestForward) req.getForward()).getFacadeUrl(); String lEncoding = (String) res.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTCHARSET); res.setPayload(replaceURLby(lServiceEndpoint, lFacadeUrl, res.getPayload().toString(), lEncoding, lMimeType)); } return res; }
doc = DOMParser.createNew().parse(new InputSource(response.getPayload().getAsStream())); } catch (DOMParserException e1) { throw new EnforcementServiceException("Could not parse response document as xml", e1);
doc = DOMParser.createNew().parse(new InputSource(response.getPayload().getAsStream())); } catch (DOMParserException e1) { throw new EnforcementServiceException("Could not parse response document as xml", e1);
doc = DOMParser.createNew().parse(new InputSource(response.getPayload().getAsStream())); } catch (DOMParserException e1) { throw new EnforcementServiceException("Could not parse response document as xml", e1);
return; InputStream sourceStream = getTransferable().getPayload().getAsStream(); writeStream(sourceStream, destinationStream, gzip);
doc = DOMParser.createNew().parse(new InputSource(response.getPayload().getAsStream())); } catch (DOMParserException e1) { throw new EnforcementServiceException("Could not parse response document as xml", e1);
public Transferable doResponse(Subject subject, InterceptorResponse interceptroResponse) throws InterceptorException, EnforcementServiceException { if (!isGetCapabilitiesRequest(interceptroResponse.getRequest())) return interceptroResponse.getResponse(); if (!isMimeTypeTextOrXML(interceptroResponse.getResponse())) return interceptroResponse.getResponse(); Transferable responseTransferable = interceptroResponse.getResponse(); String lEncoding = (String) responseTransferable.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTCHARSET); String trimmedCaps = removeUnauthorizedLayersFromCaps(subject, responseTransferable.getPayload().toString(), interceptroResponse); responseTransferable.setPayload(new TextualPayload(trimmedCaps, lEncoding)); return responseTransferable; }