Wir ändern die Funktionsweise des Abgleichs der automatischen Proxy-Konfiguration (PAC, Proxy Auto-Configuration) für PAC Manager in der RoomOS-Software.
Die PAC-Konvention, die von den wichtigsten Webbrowsern verwendet wird, einschließlich der Web-Engine, bietet die Möglichkeit, eine geänderte Syntax für reguläre Ausdrücke zu verwenden. Bisher hat PAC Manager normale reguläre Ausdrücke für den Abgleich verwendet. Wir ändern die Funktion shExpMatch, um einen Abgleichsmechanismus zu verwenden, der den Browsern ähnelt.
Diese Änderung bedeutet, dass RoomOS mit denselben Übereinstimmungen bei PAC-Dateien wie andere Web-Clients im Netzwerk funktioniert. Speziell für RoomOS geschriebene PAC-Dateien müssen möglicherweise aktualisiert werden, damit sie weiterhin wie beabsichtigt funktionieren.
Die Auswertung der PAC-Datei erfolgt in der RoomOS-Software an zwei verschiedenen Stellen:
-
In der Web-Engine für eigenen Datenverkehr.
-
Im PAC Manager für allen anderen HTTP-Datenverkehr: HttpFeedback, Webex-Bereitstellung, Anrufsignale usw.
Eine PAC-Datei kann die folgende Funktion nutzen: shExpMatch(Zeichenfolge, Muster)
Es wird „true“ zurückgegeben, wenn die Zeichenfolge dem Muster entspricht; andernfalls wird „false“ zurückgegeben.
Die wichtigsten Unterschiede zwischen den beiden Konventionen sind nachfolgend aufgeführt. Dabei steht „REGEX“ für herkömmliche reguläre Ausdrücke und „BROWSER“ für die Webbrowser-Konvention.
Der Punkt "."
-
REGEX: . entspricht einem einzelnen Zeichen, das mit einem Quantifizierer wiederholt werden kann.
-
BROWSER: . entspricht nur einem tatsächlichen Punkt.
Der Stern "*":
-
REGEX: * ist ein „Null oder mehr“-Quantifizierer nach einem Element, findet aber allein für sich keine Übereinstimmung.
-
BROWSER: * entspricht null oder mehr Zeichen.
Das Fragezeichen "?":
-
REGEX: ? ist ein „Null oder Eins“-Quantifizierer nach einem Element oder kann den "*"-Quantifizierer so ändern, dass er nicht gierig ist, findet aber allein für sich keine Überstimmung.
-
BROWSER: ? entspricht einem einzelnen Zeichen.
Ob der gesamte Ausdruck übereinstimmen muss:
-
REGEX: Ohne die Verwendung eines führenden ˆ und einem nachstehenden $ muss das MUSTER nicht mit der gesamten ZEICHENFOLGE übereinstimmen: Es genügt, dass die ZEICHENFOLGE eine übereinstimmende Teilzeichenfolge enthält.
-
BROWSER: Erfordert immer, dass die ZEICHENFOLGE genau anhand des MUSTERS abgeglichen wird.
Beispiele
Abgleich aller Hostnamen unter "provider.domain" mit Ausnahme von "otherprovider.domain", "provider.domain.tld" oder "providersdomain":
REGEX:
shExpMatch(url, "ˆ.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
Abgleich von "proxy1.domain", "proxy2.domain" usw. mit Ausnahme von "proxytest.domain":
REGEX:
shExpMatch(url, "ˆproxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
Weitere Ressourcen
Weitere Informationen zum PAC-Dateiformat finden Sie unter: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_Tunneling/Proxy_Auto-Configuration_PAC_file.