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

Transformation policy causes server error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Blocker
    • 1.2.7.Final, 1.2.x
    • None
    • None
    • None
    • Hide
      1. Create organization with public API
      2. Add transformation policy server Json, client JSON
      3. Set API endpoint to some service which return JSON, API type REST, API content type JSON, don't enable stateful request payload inspection and without security
      4. Publish this API
      5. Send GET request on managed endpoint
      Show
      Create organization with public API Add transformation policy server Json, client JSON Set API endpoint to some service which return JSON, API type REST, API content type JSON, don't enable stateful request payload inspection and without security Publish this API Send GET request on managed endpoint

    Description

      When I create organization with public api, set transformation policy JSON to JSON,
      set endpoint and try to get JSON through managed endpoint, it give me JSON with this error message


      {"responseCode":500,"message":null,"trace":"io.apiman.gateway.engine.beans.exceptions.RequestAbortedException
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$3.abort(ApiRequestExecutorImpl.java:721)
      	at io.apiman.gateway.platforms.servlet.GatewayServlet$2.handle(GatewayServlet.java:174)
      	at io.apiman.gateway.platforms.servlet.GatewayServlet$2.handle(GatewayServlet.java:161)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.handleStream(ApiRequestExecutorImpl.java:693)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$null$3(ApiRequestExecutorImpl.java:268)
      	at io.apiman.gateway.engine.policy.Chain.handleHead(Chain.java:211)
      	at io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:150)
      	at io.apiman.gateway.engine.policies.AbstractMappedPolicy.doApply(AbstractMappedPolicy.java:78)
      	at io.apiman.plugins.transformation_policy.TransformationPolicy.doApply(TransformationPolicy.java:52)
      	at io.apiman.plugins.transformation_policy.TransformationPolicy.doApply(TransformationPolicy.java:23)
      	at io.apiman.gateway.engine.policies.AbstractMappedPolicy.apply(AbstractMappedPolicy.java:70)
      	at io.apiman.gateway.engine.policy.RequestChain.applyPolicy(RequestChain.java:68)
      	at io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:148)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$4(ApiRequestExecutorImpl.java:271)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$loadPolicies$7(ApiRequestExecutorImpl.java:631)
      	at io.apiman.gateway.engine.policy.PolicyFactoryImpl.loadPolicy(PolicyFactoryImpl.java:100)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.loadPolicies(ApiRequestExecutorImpl.java:603)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$5(ApiRequestExecutorImpl.java:345)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:123)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:112)
      	at io.apiman.gateway.engine.es.CachingESRegistry.getApi(CachingESRegistry.java:115)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper.getApi(SecureRegistryWrapper.java:112)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute(ApiRequestExecutorImpl.java:320)
      	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)
      "}{"responseCode":500,"message":"io.apiman.gateway.engine.beans.exceptions.ConnectorException: method does not support a request body: GET","trace":"java.lang.RuntimeException: io.apiman.gateway.engine.beans.exceptions.ConnectorException: method does not support a request body: GET
      	at io.apiman.gateway.platforms.servlet.GatewayServlet$2.handle(GatewayServlet.java:175)
      	at io.apiman.gateway.platforms.servlet.GatewayServlet$2.handle(GatewayServlet.java:161)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.handleStream(ApiRequestExecutorImpl.java:693)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$null$3(ApiRequestExecutorImpl.java:268)
      	at io.apiman.gateway.engine.policy.Chain.handleHead(Chain.java:211)
      	at io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:150)
      	at io.apiman.gateway.engine.policies.AbstractMappedPolicy.doApply(AbstractMappedPolicy.java:78)
      	at io.apiman.plugins.transformation_policy.TransformationPolicy.doApply(TransformationPolicy.java:52)
      	at io.apiman.plugins.transformation_policy.TransformationPolicy.doApply(TransformationPolicy.java:23)
      	at io.apiman.gateway.engine.policies.AbstractMappedPolicy.apply(AbstractMappedPolicy.java:70)
      	at io.apiman.gateway.engine.policy.RequestChain.applyPolicy(RequestChain.java:68)
      	at io.apiman.gateway.engine.policy.Chain.doApply(Chain.java:148)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$4(ApiRequestExecutorImpl.java:271)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$loadPolicies$7(ApiRequestExecutorImpl.java:631)
      	at io.apiman.gateway.engine.policy.PolicyFactoryImpl.loadPolicy(PolicyFactoryImpl.java:100)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.loadPolicies(ApiRequestExecutorImpl.java:603)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$execute$5(ApiRequestExecutorImpl.java:345)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:123)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper$1.handle(SecureRegistryWrapper.java:112)
      	at io.apiman.gateway.engine.es.CachingESRegistry.getApi(CachingESRegistry.java:115)
      	at io.apiman.gateway.engine.impl.SecureRegistryWrapper.getApi(SecureRegistryWrapper.java:112)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.execute(ApiRequestExecutorImpl.java:320)
      	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: io.apiman.gateway.engine.beans.exceptions.ConnectorException: method does not support a request body: GET
      	at io.apiman.gateway.platforms.servlet.connectors.HttpApiConnection.write(HttpApiConnection.java:332)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl.lambda$null$1(ApiRequestExecutorImpl.java:259)
      	at io.apiman.gateway.engine.io.AbstractStream.handleBody(AbstractStream.java:107)
      	at io.apiman.gateway.engine.policy.Chain.access$000(Chain.java:47)
      	at io.apiman.gateway.engine.policy.Chain$3.handle(Chain.java:120)
      	at io.apiman.gateway.engine.policy.Chain$3.handle(Chain.java:116)
      	at io.apiman.gateway.engine.io.AbstractStream.write(AbstractStream.java:72)
      	at io.apiman.plugins.transformation_policy.TransformationPolicy$1.end(TransformationPolicy.java:99)
      	at io.apiman.gateway.engine.policy.Chain.end(Chain.java:191)
      	at io.apiman.gateway.engine.impl.ApiRequestExecutorImpl$3.end(ApiRequestExecutorImpl.java:706)
      	at io.apiman.gateway.platforms.servlet.GatewayServlet$2.handle(GatewayServlet.java:172)
      	... 51 more
      Caused by: java.net.ProtocolException: method does not support a request body: GET
      	at io.apiman.gateway.platforms.servlet.connectors.ok.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:251)
      	at io.apiman.gateway.platforms.servlet.connectors.HttpApiConnection.write(HttpApiConnection.java:322)
      	... 61 more
      "}
      

      Attachments

        Activity

          People

            ewittman@redhat.com Eric Wittmann
            opontes_jira Ondrej Pontes (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: