Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-16895

Log masking results in stackoverflow for large inputs

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • 3.11.0
    • 3.12.0
    • camel-core
    • None
    • Unknown

    Description

      When a fairly large input string is submitted for logging and masking is enabled, this results in a StackoverflowError

       

      Using camel with Spring Boot

      pom.xml

       <dependencyManagement>
               <dependencies>
                   <dependency>
                       <groupId>org.apache.camel.springboot</groupId>
                       <artifactId>camel-spring-boot-bom</artifactId>
                       <version>3.11.1</version>
                       <type>pom</type>
                       <scope>import</scope>
                   </dependency>
               </dependencies>
       </dependencyManagement>
      
        <!-- ... -->
       <dependency>
                   <groupId>org.springframework.boot</groupId>
                   <artifactId>spring-boot-starter-validation</artifactId>
       </dependency>
       <dependency>
                   <groupId>org.apache.camel.springboot</groupId>
                   <artifactId>camel-spring-boot-starter</artifactId>
        </dependency>
      

      Route.java

       @Component
       public class Route extends RouteBuilder {  
      
           @Override
           public void configure() throws Exception {
               from("rabbitmq:{{core.consumer.rabbitmq.exchange}}" +
                   "?exchangeType={{core.consumer.rabbitmq.exchange-type}}" +
                   "&queue={{core.consumer.rabbitmq.queue}}" +
                   "&routingKey={{core.consumer.rabbitmq.routing-key}}")
                   .routeId("queue route")
                   .log("Received payload from rabbitMQ: ${body}")
                   .unmarshal(new JacksonDataFormat(Dto.class))
                   .process(aProcessor)
                   .log("Data received ${body}")
                   .to("bean:requestProcessor?method=handleAckRequest").id("handle-ack-request")
        
                   .to("direct:anotherRoute")
               .end();
           }
       }
      

      In the application.properties
      camel.springboot.log-mask=true
       
      Now if I should post the following JSON payload through RabbitMQ
       

       {
           "qwjabrlanfssaPaymentID": 93974430,
           "apiPortNumber": 0,
           "pollerFrequency": 0,
           "serviceCode": "QWERETEMKLJLANDD",
           "extraData": {
               "97280991": {
                   "pushToOriginator": true,
                   "uidID": 41189716,
                   "metaData": [
                   {                     
                            "Value": 1070,   
                            "Name": "Amount"                
                    },
                    {                    
                             "Value": "PHP82TK6MY",                     
                             "Name": "MpesaQwasdrtjknsNumber"                
                    },
                    {                    
                            "Name": "Balance"                 
                    },
                    {                
                           "Value": 20210825224512, 
                           "Name": "TransactionDate" 
                    },
                    {                     
                           "Value": 599726145860,
                          "Name": "PhoneNumber"
                    }],
                   "pokjytsAmountCharged": 1070,
                   "hardwareRequestId": null,
                   "ProductCode": "UJHANSNLWII",
                   "isTillNumber": true,
                   "uniqueID": "83859103",
                   "vouchercode": " ",
                   "paybillNumber": "431553"
               }
           },
           "oiusdftrPaymentStatus": 139,
           "serviceUrl": "",
           "lkjmnbsdcvfdertCurrencyCode": "YUM",
           "wrapperUrl": "",
           "wsdlFile": "",
           "protocol": "default",
           "sslEnabled": 0,
           "numberOfSends": 0,
           "invoiceNumber": "",
           "erdfghytIsdgftgDate": "2021-08-25 22:45:20",
           "lkjditgfJhsgruaCustomerName": "Customer",
           "apiUserName": "",
           "ojudhfgKaswsxsUUID": "1102967588",
           "iuytredfHsdededAccountNumber": "4622785548",
           "tyghfderrMode": [
               "TUND_PUDF"
           ],
           "zxcvfgtrNsdfdfdMSISDN": "254726173860",
           "apiFunctionName": "",
           "kjhxcTransactionID": [
               "PHP82TK6MY"
           ],
           "apiPassword": "xxxxx",
           "kjhcvbnUUID": "1102967588",
           "dfcxvbnClientCode": [
               "SAFKE"
           ],
           "sslCertificatePath": "",
           "isTokenService": 0,
           "wsazxcvgbgthyujAmount": 1070,
           "plsjdhfhPusherProcessorClass": "",
           "requestOriginIDs": [
               "21"
           ],
           "firstSend": "",
           "maxNumberOfSends": 0,
           "narration": "The service request is processed successfully.",
           "hubCreationDate": "2021-08-25 22:45:20",
           "allowsPolling": 1,
           "serviceID": 3004,
           "lastSend": "2021-08-25 19:45:20",
           "nextSend": "2021-08-25 22:45:20",
           "autoAcknowledgejfhtysidj": 0
       }
      

      Attachments

        Issue Links

          Activity

            People

              davsclaus Claus Ibsen
              juliuskrah Julius Krah
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: