cancel
Showing results for 
Search instead for 
Did you mean: 

Assistance with Session Persistence iRule

stanjavoor
Nimbostratus
Nimbostratus
when HTTP_REQUEST {   if {([string tolower[HTTP::uri] matches_regex {\/wps\/myportal\((?!\?).)*$}] and ([string tolower [HTTP::cookie exists portal2_cookie]]))} { pool login_debug_pool persist cookie rewrite l_cookie 0 } elseif { ([string tolower [HTTP::uri]] contains "/abc" or [string tolower [HTTP::uri]] contains "/abcr" or [string tolower [HTTP::cookie exists b_cookie]] ) } { pool app_debug_pool persist cookie insert b_cookie 0 } elseif { ([string tolower [HTTP::uri]] contains "/pqr" or [string tolower [HTTP::uri]] contains "/aps" or [string tolower [HTTP::cookie exists p_cookie]]) } { pool pqr_debug_pool persist cookie insert p_cookie 0 } elseif { ([matchclass [HTTP::uri] contains PORTAL2_URI] or [string tolower [HTTP::cookie exists portal2_cookie]]) } { pool portal2_debug_pool persist cookie insert portal2_cookie 0 } elseif { ([matchclass [HTTP::uri] contains PORTAL1_URI] or [string tolower [HTTP::cookie exists o_cookie]]) } { pool others_debug_pool persist cookie insert o_cookie 0 } else { pool login_debug_pool persist cookie insert l_cookie }   if { [HTTP::uri] contains "/oam_logout_success" } { HTTP::respond 302 Location "https://[HTTP::host]/wps/portal" "Cache-Control" "no-cache, must-revalidate" "Set-Cookie" "l_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" "Set-Cookie" "b_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" "Set-Cookie" "p_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" "Set-Cookie" "o_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" "Set-Cookie" "l_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" "Set-Cookie" "portal2_cookie=;path=/; Expires=Thu, 01-Jan-1970 00:00:00 GMT" }   }   when HTTP_RESPONSE {   if { not([HTTP::header exists "X-Frame-Options"])}{ HTTP::header insert X-Frame-Options "SAMEORIGIN" } else { HTTP::header replace X-Frame-Options "SAMEORIGIN" } if { not([HTTP::header exists "X-FRAME-OPTIONS"])}{ HTTP::header insert X-FRAME-OPTIONS "SAMEORIGIN" } else { HTTP::header remove X-FRAME-OPTIONS HTTP::header insert X-FRAME-OPTIONS "SAMEORIGIN" }   if {![HTTP::cookie exists "DC"]} { HTTP::cookie insert name "DC" value "NY" path "/" version 1 HTTP::cookie secure DC enable HTTP::cookie httponly DC enable }   foreach x [HTTP::cookie names] { if { $x starts_with "BIGipServer" } { HTTP::cookie remove $x HTTP::cookie insert name $x value [HTTP::cookie $x] path "/" version 1 HTTP::cookie secure $x enable HTTP::cookie httponly $x enable } } }

Trying to do session persistence based on uri between multiple pools and need assistance with iRule, it is partially working and need some insights how to get it working.

 

if {([string tolower[HTTP::uri] matches_regex {\/wps\/myportal\((?!\?).)*$}] and ([string tolower [HTTP::cookie exists portal2_cookie]]))} { pool login_debug_pool persist cookie rewrite l_cookie 0 }

Above logic is being intercepted in F5 but all the requests not loading completely. If I delete the cookie portal2_cookie from browser tab manually, then it works properly.

I'm trying to figure out a way on how to delete the cookie in the response or if there is any way to get all the subsequent uri's loaded when switching pools with persistence.

 

Thanks,

Susheel

0 REPLIES 0