Our Custom Irule :
when ACCESS_POLICY_AGENT_EVENT {
if { [ACCESS::policy agent_id] eq "activesync" } {
pool Pool-Exclude
}
}
Iapp Irule :
when ACCESS_ACL_ALLOWED {
set sessionid [ACCESS::session data get "session.user.sessionid"]
switch -glob -- [string tolower [HTTP::path]] {
"/microsoft-server-activesync" {
TCP::idletime 1800
pool /Common/Test-Irule-test.app/Test-Irule-Test_pool7
persist uie $sessionid 7200
COMPRESS::disable
CACHE::disable
return
}
"/owa" {
pool /Common/Test-Irule-test.app/Test-Irule-test_owa_pool7
log local0. "Irule excuted"
if { [ACCESS::session data get "session.custom.owa.trusted"] == 0 } {
if { [HTTP::cookie exists "PrivateComputer"] } {
HTTP::cookie remove "PrivateComputer"
}
}
persist uie $sessionid 7200
return
}
"/ews*" {
pool /Common/Test-Irule-test.app/Test-Irule-test_ews_pool7
persist uie $sessionid 7200
COMPRESS::disable
CACHE::disable
return
}
"/ecp*" {
pool /Common/Test-Irule-test.app/Test-Irule-test_owa_pool7
persist uie $sessionid 7200
return
}
"/oab*" {
pool /Common/Test-Irule-test.app/Test-Irule-test_ews_pool7
persist none
return
}
"/rpc/rpcproxy.dll*" {
pool /Common/Test-Irule-test.app/Test-Irule-test_oa_pool7
COMPRESS::disable
CACHE::disable
persist uie $sessionid 7200
return
}
"/autodiscover*" {
persist none
return
}
default {
This final section takes all traffic that has not otherwise
been accounted for and sends it to the pool for Outlook Web
App
pool /Common/Test-Irule-test.app/Test-Irule-test_owa_pool7
persist uie $sessionid 7200
}
}
}
when HTTP_RESPONSE {
if { ( [HTTP::header exists "WWW-Authenticate"] &&
[string tolower [HTTP::header values "WWW-Authenticate"]] contains "negotiate" ) ||
( [HTTP::header exists "Persistent-Auth"] &&
[string tolower [HTTP::header "Persistent-Auth"]] contains "true" ) } {
ONECONNECT::reuse disable
ONECONNECT::detach disable
NTLM::disable
}
if {[HTTP::header exists "Transfer-Encoding"]} {
HTTP::payload rechunk
}
}