Uploaded image for project: 'apiman (API Management)'
  1. apiman (API Management)
  2. APIMAN-704

Invoking a non-public service without api key should produce a user-friendly error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • 1.2.0.Final, 1.2.x
    • 1.2.x
    • None
    • None

    Description

      A direct access to service that requires an API key in order to be accessible (i.e. it;s not public and available through certain plans) should produce a json error. Currently the result is a bare InvalidServiceException.

      Personal guess is that the exception is not wrapped into json

      Current response:

      io.apiman.gateway.engine.beans.exceptions.InvalidServiceException: Service not public.
      	at io.apiman.gateway.engine.impl.ServiceRequestExecutorImpl$3.handle(ServiceRequestExecutorImpl.java:268)
      	at io.apiman.gateway.engine.impl.ServiceRequestExecutorImpl$3.handle(ServiceRequestExecutorImpl.java:259)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:107)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:97)
      	at io.apiman.gateway.engine.es.CachingESRegistry$6.handle(CachingESRegistry.java:184)
      	at io.apiman.gateway.engine.es.CachingESRegistry$6.handle(CachingESRegistry.java:177)
      	at io.apiman.gateway.engine.es.ESRegistry$10.completed(ESRegistry.java:413)
      	at io.apiman.gateway.engine.es.ESRegistry$10.completed(ESRegistry.java:407)
      	at io.searchbox.client.http.JestHttpClient$DefaultCallback.completed(JestHttpClient.java:195)
      	at io.searchbox.client.http.JestHttpClient$DefaultCallback.completed(JestHttpClient.java:178)
      	at org.apache.http.concurrent.BasicFuture.completed(BasicFuture.java:119)
      	at org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.responseCompleted(DefaultClientExchangeHandlerImpl.java:177)
      	at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.processResponse(HttpAsyncRequestExecutor.java:412)
      	at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.inputReady(HttpAsyncRequestExecutor.java:305)
      	at org.apache.http.impl.nio.DefaultNHttpClientConnection.consumeInput(DefaultNHttpClientConnection.java:267)
      	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:81)
      	at org.apache.http.impl.nio.client.InternalIODispatch.onInputReady(InternalIODispatch.java:39)
      	at org.apache.http.impl.nio.reactor.AbstractIODispatch.inputReady(AbstractIODispatch.java:116)
      	at org.apache.http.impl.nio.reactor.BaseIOReactor.readable(BaseIOReactor.java:164)
      	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvent(AbstractIOReactor.java:339)
      	at org.apache.http.impl.nio.reactor.AbstractIOReactor.processEvents(AbstractIOReactor.java:317)
      	at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:278)
      	at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106)
      	at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:590)
      	at java.lang.Thread.run(Thread.java:745)
      

      Expected response:

      {
        "type": "InvalidServiceException:",
        "errorCode": XYZ,
        "message": "Service not public.",
        "moreInfoUrl": null,
        "stacktrace": "...."
      }
      

      Attachments

        Activity

          People

            ewittman@redhat.com Eric Wittmann
            jcechace@redhat.com Jakub Čecháček
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: