Forum Discussion

Louis27's avatar
Louis27
Icon for Nimbostratus rankNimbostratus
Jun 09, 2022

Remove values in the payload

Hello, I am new to the F5 iRules.

I need to remove all the values of '<pan>' in the 'HTTP::payload', either remove all the tags '<pan>' too.
The structure is as below.  This '<pan>' can exsit one or more times in the 'HTTP::payload'.

I am wondering if there is 'regex map' like 'string map' to do that?

If anyone can help, i really appreciate it.

Louis

 

 

 

<card>
   <expDate>[string]</expDate>
   <pan>
        <plainPan>[string?]</plainPan>
    </pan>
</card>
<card>
    <expDate>[string]</expDate>
     <pan>
         <plainPan>[string?]</plainPan>
     </pan>
</card>

 

 

 

 

6 Replies

  • I'm not sure I follow exactly, are you trying to do this:

     

    <card>
       <expDate>[string]</expDate>
            <plainPan>[string?]</plainPan>
    </card>
    <card>
        <expDate>[string]</expDate>
             <plainPan>[string?]</plainPan>
    </card>

     

    or this:

     

    <card>
       <expDate>[string]</expDate>
    </card>
    <card>
        <expDate>[string]</expDate>
    </card>

     

    If the first, you can do that with a simple stream profile:

    ltm profile stream pan_test_stream {
        app-service none
        defaults-from stream
        target "@<pan>@@ @</pan>@@"
    }

    If the latter, an html content profile should work, but I haven't done that before. Something to look into before thinking about regex.

     

    • Louis27's avatar
      Louis27
      Icon for Nimbostratus rankNimbostratus

      Hello JRahm,  Thanks for your response. 

      What I want to do is the second one as you mentioned. 
      I have tried 'html content' with this article https://support.f5.com/csp/article/K99872325, it doesn't work. It seems that 'html content profile' is only for modify HTML content sent in responses from the back-end servers. 

      What I want is to modify the request . Do you have any suggestion about  that?

      By the way, the request is in the format xml SOAP as below:

       

      <Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
          <Body>
                  <cardsData>
                      <card>
                          <expDate>[string]</expDate>
                          <pan>
                              <plainPan>[string?]</plainPan>
                          </pan>
                      </card>
                      <card>
                          <expDate>[string]</expDate>
                          <pan>
                              <plainPan>[string?]</plainPan>
                          </pan>
                      </card>
                     can exist serveral cards
          </Body>
      </Envelope>

       

      Thank you in advance.

      • JRahm's avatar
        JRahm
        Icon for Admin rankAdmin

        Yeah, I found that out myself on the HTML profile, couldn't get it to work on request traffic. What's your virtual server setup look like regarding profiles? Might need to do some payload manipulation in iRules.