Změny v automatické konfiguraci proxy serveru (PAC)
list-menuZpětná vazba?
Měníme způsob, jakým funguje párování Proxy Auto-Configuration (PAC) pro pacmanager v softwaru RoomOS.

Konvence PAC používaná hlavními webovými prohlížeči, včetně webového enginu, je použití modifikované syntaxe regulárních výrazů. Až dosud, pacmanager používal pro párování běžné regulární výrazy. Změníme funkci ShexpMatch tak, aby používala shodu, která je podobná prohlížečům.

Tato změna znamená, že RoomOS bude pracovat se stejnými shodami souborů PAC jako ostatní weboví klienti v síti. Soubory PAC speciálně napsané pro RoomOS může být nutné aktualizovat, aby fungovaly tak, jak bylo zamýšleno.

Vyhodnocení souboru PAC se provádí na dvou samostatných místech v softwaru RoomOS:

  • Webový engine pro vlastní provoz.

  • Pacmanager pro veškerý další provoz HTTP: HttpFeedback, zřizování Webex, signalizace volání atd.

Soubor PAC může využít tuto funkci: SHEXPmatch (string, pattern)

Vrátí hodnotu true, pokud řetězec odpovídá vzoru, jinak false.

Hlavní rozdíly mezi těmito dvěma konvencemi jsou uvedeny níže, přičemž „REGEX“ znamená tradiční regulární výrazy a „BROWSER“ znamená konvenci webového prohlížeče.

Ten tečkový znak, „.“

  • REGEX:. odpovídá jednomu znaku, který lze opakovat pomocí kvantifikátoru

  • PROHLÍŽEČ:. odpovídá pouze doslovnému tečkovému znaku

Hvězda, „*“:

  • REGEX: * je kvantifikátor nuly nebo více po položce, ale sám o sobě neodpovídá ničemu

  • PROHLÍŽEČ: * odpovídá nule nebo více znakům

Otazník, „?“ :

  • REGEX:? je kvantifikátor nula nebo jedna za položkou nebo může modifikovat kvantifikátor * tak, aby nebyl chamtivý, ale sám o sobě neodpovídá ničemu

  • PROHLÍŽEČ:? odpovídá jednomu znaku

Zda se musí shodovat celý výraz:

  • REGEX: Bez použití počátečních ^ a koncových $ nemusí PATTERN odpovídat celému STRINGU: Stačí, aby STRING obsahoval podřetězec, který se shoduje.

  • PROHLÍŽEČ: Vždy vyžadujte, aby byl ŘETĚZEC přesně shodován podle VZORU

Příklady

Chceme porovnat všechny názvy hostitelů pod „provider.domain“, ale ne „otherprovider.domain“, „provider.domain.tld“ nebo „providersdomain“:

REGEX:


     shExpMatch(url, "^.*\\.provider\\.domain$") 
   

BROWSER:


     shExpMatch(url, "*.provider.domain") 
   

Chceme porovnat „proxy1.domain“, „proxy2.domain“ atd., ale ne „proxytest.domain“:

REGEX:


     shExpMatch(url, "^proxy.\\.domain$") 
   

BROWSER:


     shExpMatch(url, "proxy?.domain") 
   

Ostatní zdroje

Další podrobnosti o formátu souboru PAC naleznete na adrese: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file .

Byl tento článek užitečný?
Byl tento článek užitečný?