Forum Discussion
irule to look to see if the value is in the Body
I was trying to figure out how to write an iRule to look for a parameter in the Body. I thought the token would be in the header. However the developer put it in the body. How do I look in the body of a http req.
Thanks for your help.
when HTTP_REQUEST {
if { [HTTP::uri] equals "login.aspx" } {
if { [HTTP::header exists "token"] } {
log local0. "Request from [IP::client_addr] for login.aspx includes HTTP header token with value: [HTTP::header "token"]"
} else {
log local0. "Request from [IP::client_addr] for login.aspx does not include HTTP header token"
}
}
}
2 Replies
when HTTP_REQUEST { if {[HTTP::method] eq "POST"}{ if {[HTTP::header "Content-Length"] ne "" && [HTTP::header "Content-Length"] <= 1048576}{ set content_length [HTTP::header "Content-Length"] } else { set content_length 1048576 } if { $content_length > 0} { HTTP::collect $content_length } } } when HTTP_REQUEST_DATA { log local0. "Token = [findstr [HTTP::payload] "token=" 6 &]" }This is the way, however I would be careful to implement it. I'd recommend to do performance testing before deploying it in a production environment.
Just recently I had a similar requirement and it works good with small requests. However the customer had POST requests up to 400kb. Then this suddenly becomes heavy on the CPU.
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com
