Search in sources :

Example 1 with MissingServiceParameterException

use of org.n52.shetland.ogc.ows.exception.MissingServiceParameterException in project arctic-sea by 52North.

the class SimpleBinding method checkServiceOperatorKeyTypes.

protected void checkServiceOperatorKeyTypes(OwsServiceRequest request) throws OwsExceptionReport {
    String service = request.getService();
    String version = request.getVersion();
    if (service == null || service.isEmpty()) {
        throw new MissingServiceParameterException();
    } else if (!getServiceOperatorRepository().isServiceSupported(service)) {
        throw new InvalidServiceParameterException(service);
    } else if (request instanceof GetCapabilitiesRequest) {
        GetCapabilitiesRequest gcr = (GetCapabilitiesRequest) request;
        if (gcr.isSetAcceptVersions() && !gcr.getAcceptVersions().stream().anyMatch(v -> isVersionSupported(service, v))) {
            throw new InvalidAcceptVersionsParameterException(gcr.getAcceptVersions());
        }
    } else if (version == null || version.isEmpty()) {
        throw new MissingVersionParameterException();
    } else if (!isVersionSupported(service, version)) {
        throw new VersionNotSupportedException();
    }
}
Also used : GetCapabilitiesRequest(org.n52.shetland.ogc.ows.service.GetCapabilitiesRequest) InvalidServiceParameterException(org.n52.iceland.exception.ows.concrete.InvalidServiceParameterException) MissingVersionParameterException(org.n52.shetland.ogc.ows.exception.MissingVersionParameterException) InvalidAcceptVersionsParameterException(org.n52.iceland.exception.ows.concrete.InvalidAcceptVersionsParameterException) VersionNotSupportedException(org.n52.iceland.exception.ows.concrete.VersionNotSupportedException) MissingServiceParameterException(org.n52.shetland.ogc.ows.exception.MissingServiceParameterException)

Example 2 with MissingServiceParameterException

use of org.n52.shetland.ogc.ows.exception.MissingServiceParameterException in project arctic-sea by 52North.

the class KvpBinding method parseRequest.

protected OwsServiceRequest parseRequest(HttpServletRequest req) throws OwsExceptionReport {
    if (req.getParameterMap() == null || req.getParameterMap().isEmpty()) {
        throw new MissingRequestParameterException();
    }
    Map<String, String> parameters = Streams.stream(req.getParameterNames()).collect(toMap(name -> name.replace("amp;", "").toLowerCase(Locale.ROOT), req::getParameter));
    String service = parameters.get(RequestParams.service.name());
    String version = parameters.get(RequestParams.version.name());
    String operation = parameters.get(RequestParams.request.name());
    if (Strings.isNullOrEmpty(service)) {
        throw new MissingServiceParameterException();
    }
    if (!isServiceSupported(service)) {
        throw new InvalidServiceParameterException(service);
    }
    if (Strings.isNullOrEmpty(operation)) {
        throw new MissingRequestParameterException();
    }
    if (version != null && !isVersionSupported(service, version)) {
        throw new VersionNotSupportedException();
    }
    Decoder<OwsServiceRequest, Map<String, String>> decoder = getDecoder(new OperationDecoderKey(service, version, operation, MediaTypes.APPLICATION_KVP));
    if (decoder == null) {
        throw new OperationNotSupportedException(operation);
    }
    OwsServiceRequest request;
    try {
        request = decoder.decode(parameters);
    } catch (OwsDecodingException ex) {
        throw ex.getCause();
    } catch (DecodingException ex) {
        throw toOwsExceptionReport(ex);
    }
    if (this.includeOriginalRequest) {
        request.setOriginalRequest(String.join("?", req.getRequestURL(), req.getQueryString()));
    }
    return request;
}
Also used : MediaTypes(org.n52.janmayen.http.MediaTypes) InvalidParameterValueException(org.n52.shetland.ogc.ows.exception.InvalidParameterValueException) Decoder(org.n52.svalbard.decode.Decoder) HTTPException(org.n52.iceland.exception.HTTPException) LoggerFactory(org.slf4j.LoggerFactory) MediaType(org.n52.janmayen.http.MediaType) SosConstants(org.n52.shetland.ogc.sos.SosConstants) LocationHintException(org.n52.janmayen.exception.LocationHintException) Strings(com.google.common.base.Strings) HttpServletRequest(javax.servlet.http.HttpServletRequest) Collectors.toMap(java.util.stream.Collectors.toMap) Locale(java.util.Locale) Map(java.util.Map) Collector(java.util.stream.Collector) OwsServiceResponse(org.n52.shetland.ogc.ows.service.OwsServiceResponse) MediaTypeBindingKey(org.n52.iceland.binding.MediaTypeBindingKey) SimpleBinding(org.n52.iceland.binding.SimpleBinding) OwsOperationKey(org.n52.shetland.ogc.ows.service.OwsOperationKey) Sos2Constants(org.n52.shetland.ogc.sos.Sos2Constants) CompositeException(org.n52.janmayen.exception.CompositeException) DecodingException(org.n52.svalbard.decode.exception.DecodingException) Logger(org.slf4j.Logger) HttpServletResponse(javax.servlet.http.HttpServletResponse) OperationNotSupportedException(org.n52.shetland.ogc.ows.exception.OperationNotSupportedException) Set(java.util.Set) Setting(org.n52.faroe.annotation.Setting) IOException(java.io.IOException) MiscSettings(org.n52.iceland.service.MiscSettings) BindingKey(org.n52.iceland.binding.BindingKey) OwsExceptionReport(org.n52.shetland.ogc.ows.exception.OwsExceptionReport) MissingRequestParameterException(org.n52.iceland.exception.ows.concrete.MissingRequestParameterException) OwsServiceRequest(org.n52.shetland.ogc.ows.service.OwsServiceRequest) InvalidServiceParameterException(org.n52.iceland.exception.ows.concrete.InvalidServiceParameterException) ConformanceClasses(org.n52.svalbard.ConformanceClasses) OperationDecoderKey(org.n52.svalbard.decode.OperationDecoderKey) OwsDecodingException(org.n52.iceland.coding.decode.OwsDecodingException) Streams(org.n52.janmayen.stream.Streams) VersionNotSupportedException(org.n52.iceland.exception.ows.concrete.VersionNotSupportedException) Configurable(org.n52.faroe.annotation.Configurable) CompositeOwsException(org.n52.shetland.ogc.ows.exception.CompositeOwsException) Collections(java.util.Collections) RequestParams(org.n52.shetland.ogc.ows.OWSConstants.RequestParams) MissingServiceParameterException(org.n52.shetland.ogc.ows.exception.MissingServiceParameterException) OperationNotSupportedException(org.n52.shetland.ogc.ows.exception.OperationNotSupportedException) OwsDecodingException(org.n52.iceland.coding.decode.OwsDecodingException) InvalidServiceParameterException(org.n52.iceland.exception.ows.concrete.InvalidServiceParameterException) MissingRequestParameterException(org.n52.iceland.exception.ows.concrete.MissingRequestParameterException) DecodingException(org.n52.svalbard.decode.exception.DecodingException) OwsDecodingException(org.n52.iceland.coding.decode.OwsDecodingException) VersionNotSupportedException(org.n52.iceland.exception.ows.concrete.VersionNotSupportedException) MissingServiceParameterException(org.n52.shetland.ogc.ows.exception.MissingServiceParameterException) OwsServiceRequest(org.n52.shetland.ogc.ows.service.OwsServiceRequest) Collectors.toMap(java.util.stream.Collectors.toMap) Map(java.util.Map) OperationDecoderKey(org.n52.svalbard.decode.OperationDecoderKey)

Aggregations

InvalidServiceParameterException (org.n52.iceland.exception.ows.concrete.InvalidServiceParameterException)2 VersionNotSupportedException (org.n52.iceland.exception.ows.concrete.VersionNotSupportedException)2 MissingServiceParameterException (org.n52.shetland.ogc.ows.exception.MissingServiceParameterException)2 Strings (com.google.common.base.Strings)1 IOException (java.io.IOException)1 Collections (java.util.Collections)1 Locale (java.util.Locale)1 Map (java.util.Map)1 Set (java.util.Set)1 Collector (java.util.stream.Collector)1 Collectors.toMap (java.util.stream.Collectors.toMap)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1 HttpServletResponse (javax.servlet.http.HttpServletResponse)1 Configurable (org.n52.faroe.annotation.Configurable)1 Setting (org.n52.faroe.annotation.Setting)1 BindingKey (org.n52.iceland.binding.BindingKey)1 MediaTypeBindingKey (org.n52.iceland.binding.MediaTypeBindingKey)1 SimpleBinding (org.n52.iceland.binding.SimpleBinding)1 OwsDecodingException (org.n52.iceland.coding.decode.OwsDecodingException)1 HTTPException (org.n52.iceland.exception.HTTPException)1