-
Bug
-
Resolution: Done
-
Critical
-
None
-
None
When I export data from APIMAN 1.2.6 and import the same data back into another fresh instance of APIMAN 1.2.6, my first request to API gives following error. If I hit the refresh, request goes through. Please find detailed steps for you to reproduce it.
Detailed steps to reproduce the error
- Install apiman-1.2.6.Final quickstart overlay in wildfly 10.0.0
- Once it's up and running, create an organization, a plan with rate limiting policy, an API, and a client w/ contract that uses that API
- lock, register, and publish everything
- Export the configuration
- Import the configuration in a fresh instance of apiman-1.2.6.Final
- Hit the public managed endpoint with the apikey
Expected result:
The endpoint works and passes through to the underlying service.
Actual result:
On the first try, the following response:
{ "responseCode": 500, "message": "com.fasterxml.jackson.core.JsonParseException: Unrecognized token '$CRYPT': was expecting ('true', 'false' or 'null') at [Source: $CRYPT::xxmjOWK0XZOWp/nWdFYC4vJwABacW0Pf/EH/4Z+t/sH2bYEcPD6jXPONbmPvTwWgnQY2rHQFDxfhalvKu0FiTA==; line: 1, column: 7]", "trace": "io.apiman.gateway.engine.beans.exceptions.ConfigurationParseException: com.fasterxml.jackson.core.JsonParseException: Unrecognized token '$CRYPT': was expecting ('true', 'false' or 'null') at [Source: $CRYPT::xxmjOWK0XZOWp/nWdFYC4vJwABacW0Pf/EH/4Z+t/sH2bYEcPD6jXPONbmPvTwWgnQY2rHQFDxfhalvKu0FiTA==; line: 1, column: 7] at io.apiman.gateway.engine.policies.AbstractMappedPolicy.parseConfiguration(AbstractMappedPolicy.java:54) at io.apiman.gateway.engine.policy.PolicyFactoryImpl.loadConfig(PolicyFactoryImpl.java:74) at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$loadPolicies$7(ApiRequestExecutorImpl.java:607) at io.apiman.gateway.engine.policy.PolicyFactoryImpl.doLoadFromClasspath(PolicyFactoryImpl.java:148) at io.apiman.gateway.engine.policy.PolicyFactoryImpl.loadPolicy(PolicyFactoryImpl.java:107) at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.loadPolicies(ApiRequestExecutorImpl.java:603) at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$6(ApiRequestExecutorImpl.java:391) at io.apiman.gateway.engine.impl.SecureRegistryWrapper$3.handle(SecureRegistryWrapper.java:172) at io.apiman.gateway.engine.impl.SecureRegistryWrapper$3.handle(SecureRegistryWrapper.java:154) at io.apiman.gateway.engine.es.CachingESRegistry.getContract(CachingESRegistry.java:101) at io.apiman.gateway.engine.impl.SecureRegistryWrapper.getContract(SecureRegistryWrapper.java:154) at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute(ApiRequestExecutorImpl.java:357) at io.apiman.gateway.platforms.servlet.GatewayServlet.doAction(GatewayServlet.java:179) at io.apiman.gateway.platforms.servlet.GatewayServlet.service(GatewayServlet.java:79) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 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 org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) 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.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50) at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43) at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43) at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61) 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:284) at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263) at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81) at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174) at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202) at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793) 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) Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token '$CRYPT': was expecting ('true', 'false' or 'null') at [Source: $CRYPT::xxmjOWK0XZOWp/nWdFYC4vJwABacW0Pf/EH/4Z+t/sH2bYEcPD6jXPONbmPvTwWgnQY2rHQFDxfhalvKu0FiTA==; line: 1, column: 7] at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1487) at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:518) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2299) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1458) at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:683) at com.fasterxml.jackson.databind.ObjectReader._initForReading(ObjectReader.java:345) at com.fasterxml.jackson.databind.ObjectReader._bindAndClose(ObjectReader.java:1426) at com.fasterxml.jackson.databind.ObjectReader.readValue(ObjectReader.java:1081) at io.apiman.gateway.engine.policies.AbstractMappedPolicy.parseConfiguration(AbstractMappedPolicy.java:52) ... 41 more " }
Everything seems to work as expected on successive tries. Note that if I restart wildfly I will again get the 500 on the first try only.