Copy link to clipboard
Copied
I have been working with the API Manager, locally on Windows, and find a number of issues/bugs.
When importing a working REST API configured in ColdFusion, it builds the resources but a save fails with an error box (red in the lower right hand corner) that SHOULD contain error text but is empty. (I deleted one of the API's and it saved (the API was similar to another but not identical - I don't know why it thought they were the same, CF allows me to register and run both). One is /Service/club/{ClubID} and the other is /Service/club/{ClubID}-{Account}. These both work in CF but I cannot have both in the API manager
Also, when trying to test the saved API using basicAuth, I get a 500 server error. A look in the logs shows an exception that I cannot find information on anywhere. The entire trace is shown below. The API's work fine when using authentication of none or apiKey
So, I guess the questions are:
1. Why do I receive an empty error box (red box with an icon on the left and an x on the right but no text) and have to refer to the logs to see the error
2. Why are the API's /Service/club/{ClubID} and /Service/club/{ClubID}-{Account} considered the same API ({Account} is optional but CF didn't have any problems finding the correct method to run)?
3. What is a GrootException and how do I resolve the server error when trying to use basicAuth
[ERROR] 2017-08-23 10:21:06.921 [XNIO-1 task-16] ExceptionFilter - "Exception occurred when serving the request"
com.adobe.amp.exception.GrootException: Internal Server Error
at com.adobe.amp.filter.SecurityFilter.pre(SecurityFilter.java:92)
at com.adobe.amp.filter.AbstractAPIFilter.invoke(AbstractAPIFilter.java:40)
at com.adobe.amp.filter.AbstractAPIFilter.invoke(AbstractAPIFilter.java:45)
at com.adobe.amp.filter.AbstractAPIFilter.invoke(AbstractAPIFilter.java:45)
at com.adobe.amp.filter.ExceptionFilter.invoke(ExceptionFilter.java:64)
at com.adobe.amp.filter.AbstractAPIFilter.invoke(AbstractAPIFilter.java:45)
at com.adobe.amp.filter.GrootServlet.service(GrootServlet.java:96)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285)
at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264)
at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:175)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:802)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Copy link to clipboard
Copied
It might help to report a bug.
Copy link to clipboard
Copied
I resolved the exception by setting up an external user store, using SQL from an example. The exception went away. It would have been nice to get some kind of a useful error message rather than a Groot exception.