Details
-
Bug
-
Resolution: Done
-
Minor
-
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": "...." }