Forum Discussion
Nicolas_Bellen1
May 31, 2011Nimbostratus
HTTP Payload matching
I'm trying to match on a value in the HTTP payload and then insert this value into a cookie so i can use it for other purposes in future requests. However, i'm not getting any matches for HTTP_RESPONSE or HTTP_RESPONSE_DATA (i.e. it's not logging anything contained within this conditional statement). Is there something simple i'm missing here?
when HTTP_RESPONSE_DATA {
Log debug to /var/log/ltm? 1=yes, 0=no.
set debug 1
Check for the FQDN in the payload
set found [regexp "GMVM(\d)+.oasis\.local" [HTTP::payload]]
if {$found != -1 } {
Insert a new cookie with the old host IP name and old cookie's value
HTTP::cookie insert name "DRCShared_IP" value [class search CLASS equals $found]
if {$debug != 0} {
log local0. "$found is being replaced"
log local0. "[IP::client_addr]:[TCP::client_port]: Debug enabled" }
}
I'm seeing the the contents that i'm trying to match on referenced in the payload coming back from VIP. Any help would be appreciated.
Nick
- hoolioCirrostratusHi Nick,
when HTTP_RESPONSE { Trigger collection for up to 1MB of data if {[HTTP::header exists "Content-Length"] && [HTTP::header "Content-Length"] <= 1048576}{ set content_length [HTTP::header "Content-Length"] } else { set content_length 1048576 } Check if $content_length is not set to 0 if { content_length > 0} { HTTP::collect $content_length } } when HTTP_RESPONSE_DATA { do stuff with the payload set payload [HTTP::payload] }
when HTTP_REQUEST { Prevent the server from sending a compressed response remove the compression offerings from the client HTTP::header remove "Accept-Encoding" Don't allow data to be chunked if { [HTTP::version] eq "1.1" } { Force downgrade to HTTP 1.0, but still allow keep-alive connections. Since 1.1 is keep-alive by default, and 1.0 isn't, we need make sure the headers reflect the keep-alive status. Check if this is a keep alive connection if { [HTTP::header is_keepalive] } { Replace the connection header value with "Keep-Alive" HTTP::header replace "Connection" "Keep-Alive" } Set server side request version to 1.0 This forces the server to respond without chunking HTTP::version "1.0" } } when HTTP_RESPONSE { Trigger collection for up to 1MB of data if {[HTTP::header exists "Content-Length"] && [HTTP::header "Content-Length"] <= 1048576}{ set content_length [HTTP::header "Content-Length"] } else { set content_length 1048576 } Check if $content_length is not set to 0 if { content_length > 0} { HTTP::collect $content_length } } when HTTP_RESPONSE_DATA { do stuff with the payload set payload [HTTP::payload] }
- Nicolas_Bellen1NimbostratusI am not doing this. Thanks for the insight!
Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects