/** * Checks, if document is a capabilities document * * @param request * request * @return true if document is a capabilities document, else false */ private boolean isGetCapabilitiesRequest(SecuredServiceRequest request) { Payload reqPayload = request.getPayload(); if (!(reqPayload instanceof QueryStringPayload)) { return false; } String requestParam = ((QueryStringPayload) reqPayload).getParameterValue("REQUEST"); return requestParam != null && (requestParam.equalsIgnoreCase("GetCapabilities") || reqPayload.toString().contains( "GetCapabilities")); }
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; }
/** * @param req The request * @return true if this is a valid XML encoded request. It's only a valid * XML encoded request according to wfs 1.1 spec if the content-type is * "text/xml" */ private boolean isXMLDescribeFeatureTypeRequest(SecuredServiceRequest req) { Payload reqPayload = req.getPayload(); String contentType = (String) req.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); if (contentType == null || !contentType.contains("text/xml")) { return false; } String requestString = reqPayload.toString(); if (requestString != null) { m_requestDocument = DOMParser.createNew().parse(new InputSource(new StringReader(requestString))); } else { throw new IllegalArgumentException("Creation of " + this.getClass().getName() + "failed. No DescribeFeatureType request"); } if (m_requestDocument != null && m_requestDocument.getFirstChild().getNodeName() != "DescribeFeatureType") { return false; } return true; }
private boolean isGetCapabilitiesRequest(SecuredServiceRequest pRequest) { Payload lReqPayload = pRequest.getPayload(); String lRequestParam = null; // Return if the request structure does not meet our needs if (!(lReqPayload instanceof QueryStringPayload)) { try { lReqPayload = new QueryStringPayload(lReqPayload.toString()); } catch (Exception e) { return false; } } return (lRequestParam = ((QueryStringPayload) lReqPayload).getParameterValue("REQUEST")) != null && lRequestParam.equalsIgnoreCase("GetCapabilities"); }
public SecuredServiceRequest doRequest(Subject pSubject, InterceptorRequest pRequest) throws InterceptorException, EnforcementServiceException { if (!mRequestConfig.isEnabled()) { return pRequest.getRequest(); } LOG.debug("intercepting request"); //TODO Datum, Nutzer(loginname), Request (ist nur get) [IP Add, vielleicht sollte der PES das in die Map packen?] String lServiceRequest = pRequest.getRequest().getPayload().toString(); String lUSerInfo = getUserDesignator(pSubject); StringBuffer lLogLine = new StringBuffer(); lLogLine.append(formatter.format(new Date())).append("\t") .append(lUSerInfo).append("\t"). append(lServiceRequest); mRequestConfig.getLogFile().logLine(lLogLine.toString()); return pRequest.getRequest(); }
/** * @param req The request * @return true if this is a valid XML encoded request. It's only a valid * XML encoded request according to wfs 1.1 spec if the content-type is * "text/xml" */ private boolean isXMLGetFeatureRequest(SecuredServiceRequest req) { Payload reqPayload = req.getPayload(); String contentType = (String) req.getAttributeValue(HttpHeaderAttribute.HEADER_NAME_CONTENTTYPE); if (contentType == null || !contentType.contains("text/xml")) { return false; } String requestString = reqPayload.toString(); if (requestString != null) { m_requestDocument = DOMParser.createNew().parse(new InputSource(new StringReader(requestString))); } else { throw new IllegalArgumentException("Creation of " + this.getClass().getName() + "failed. No GetFeature request"); } if (m_requestDocument != null && m_requestDocument.getFirstChild().getNodeName() != "GetFeature") { return false; } return true; }
lPayloadAsString = new String(Base64.encodeBase64(lStreamPayload.toByteArray())); } else { lPayloadAsString = pPayload.toString();
/** * @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; }
String lPayloadAsString = pResponse.getResponse().getPayload().toString(); String lUSerInfo = getUserDesignator(pSubject);
lQueryString.append(preconfiguredQuery); String payloadQuery = requestTransferable.getPayload().toString(); if (payloadQuery != null && payloadQuery.length() > 0) { if (lQueryString.length() > 0) {
LOG.debug("Request Body:\n{}", pRequest.getPayload().toString());
queryStringPayload = new QueryStringPayload(req.getPayload().toString()); if (queryStringPayload.size() > 0) { return queryStringPayload;
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; }
lReqPayload = new QueryStringPayload(lReqPayload.toString()); } catch (Exception e) { return req;
lReqPayload = new QueryStringPayload(lReqPayload.toString()); } catch (Exception e) { return lRequest;
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; }