-
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.