Forum Discussion
Hi Walter please can you help me because I have used your code but it seems that it doesn't work for my web app? How can I use it? How did you verify that content of your request is uncompressed?
- vagabondino_377Nov 28, 2018Nimbostratus
Thanks very much
- Walter_KacynskiNov 28, 2018Cirrostratus
I'm not sure, it worked for me. I don't know what setup you have to steer you in the correct direction. Can you dump out some of your virtual server configuration?
- vagabondino_377Nov 28, 2018Nimbostratus
Here is my virtual server configuration:
ltm virtual d1co-collsiopeplus-a2a { address-status yes app-service none auth none auto-lasthop default bwc-policy none clone-pools none cmp-enabled yes connection-limit 0 description colla2a.siopeplus.it destination 172.23.128.93%1:https enabled fallback-persistence none flow-eviction-policy none gtm-score 0 ip-intelligence-policy none ip-protocol tcp last-hop-pool none mask 255.255.255.255 metadata none mirror disabled mobile-app-tunnel disabled nat64 disabled partition Common per-flow-request-access-policy none persist none policies { asm_auto_l7_policy__d1co-collsiopeplus-a2a { } } pool d1co-collsiopeplus-a2a profiles { ASM_d1co-collsiopeplus-a2a-443_temp { context all } d1co-collsiopeplus-a2a { context clientside } d1co-collsiopeplus-a2a-443 { context all } http { context all } tcp { context all } websecurity { context all } } rate-class none rate-limit disabled rate-limit-dst-mask 0 rate-limit-mode object rate-limit-src-mask 0 related-rules none rules { Direct_client-server_authentication d1co-siopeplus-a2a-throttle-get } security-log-profiles { local_allresp_allreq remote_allresp_allreq } service-down-immediate-action none service-policy none source 0.0.0.0%1/0 source-address-translation { pool none type none } source-port preserve syn-cookie-status not-activated traffic-classes none translate-address enabled translate-port enabled transparent-nexthop none urldb-feed-policy none vlans { D1-COLL-LB-EST-FE.128.0-23 } vlans-enabled vs-index 114 }
- Walter_KacynskiNov 28, 2018Cirrostratus
I only see two iRule applied
rules { Direct_client-server_authentication d1co-siopeplus-a2a-throttle-get }
Did you put the code in one of these?
- vagabondino_377Nov 29, 2018Nimbostratus
Yes this is the code of my irule "Direct_client-server_authentication" when HTTP_REQUEST { if { [HTTP::method] eq "POST" and [HTTP::header "Content-Type"] eq "application/zip"} { foreach aHeader [HTTP::header names] { log local0. "$aHeader: [HTTP::header value $aHeader]" } set zip_payload [HTTP::payload] log local0. "HTTP_REQUEST payload PRIMA: $zip_payload " set zip_ContentLength [HTTP::header Content-Length] ************************** DECOMPRESS PAYLOAD log local0. "HTTP_REQUEST : Before decompressing request. " DECOMPRESS::enable request log local0. "HTTP_REQUEST : Decompressing request" set uncompressed_payload [ziplib decompress $zip_payload] set uncompressed_payload "" set uncompressedContentLenght [string length $uncompressed_payload] HTTP::payload replace 0 [HTTP::payload length] "" HTTP::payload replace 0 0 $uncompressed_payload HTTP::header replace Content-Length $uncompressedContentLenght set payload [HTTP::payload] foreach aHeader [HTTP::header names] { log local0. "$aHeader: [HTTP::header value $aHeader]" } log local0. "HTTP_REQUEST payload DOPO: $payload " HTTP::collect $zip_ContentLength solo headers log local0. [HTTP::request] } } when HTTP_REQUEST_DATA { Do stuff with the payload log local0. "Ciao " set payload1 [HTTP::payload] log local0. "HTTP_REQUEST_DATA : $payload1 " } parse post-ASM requests when HTTP_REQUEST_RELEASE { Define the post-ASM request action log local0. "Before uncompressed request." COMPRESS::enable request HTTP::payload replace 0 [HTTP::payload length] "" HTTP::payload replace 0 0 $zip_payload log local0. "After Compressed request." set zip_release_payload [HTTP::payload] log local0. "HTTP_REQUEST payload PRIMA: $zip_release_payload " } when ASM_REQUEST_DONE { log local0. "Before compressing request." COMPRESS::enable request set asmpayload [ASM::payload] log local0. "ASM_REQUEST_DONE : $asmpayload " log local0. "Compressing request." }
- Walter_KacynskiNov 29, 2018Cirrostratus
Are you sure on the content type? [HTTP::header "Content-Type"] eq "application/zip"
BIG-IP can only handle deflate or gzip -- not "ZIP" which you use for files/archives.
- vagabondino_377Nov 29, 2018Nimbostratus
ah ok thanks very much for the answer Hi