Is the request chunked or does it not have a content length header? Can you try this version with a bit more debug and reply with the sanitized logs from /var/log/ltm?
when HTTP_REQUEST {
Collect up to the first 1MB of POST data
log local0. "Checking post method [HTTP::method] uri: [HTTP::uri] http_version: [HTTP::version] IP: [IP::client_addr]"
log local0. "Headers: [HTTP::request]"
if {[HTTP::method] eq "POST"}{
Check if there is a content-length header and the value is set to less than 1Mb
if {[HTTP::header exists "Content-Length"] && [HTTP::header "Content-Length"] <= 1048576}{
set clength [HTTP::header "Content-Length"]
} else {
set clength 1048576
}
log local0. "Checking content length $clength IP: [IP::client_addr]"
if { $clength > 0} {
if {$debug}{log local0. "[virtual name]: Collecting $clength bytes IP: [IP::client_addr]"}
HTTP::collect [HTTP::header "Content-Length"]
}
}
}
when HTTP_REQUEST_DATA {
if {$debug}{log local0. "Collecting payload [HTTP::header "Content-Length"] IP: [IP::client_addr]"}
set SAMLResponse [HTTP::payload [HTTP::header "Content-Length"]]
log local0. "saml response : $SAMLResponse IP: [IP::client_addr] "
HTTP::release
}
Aaron