RoomOS ソフトウェアの pacmanager でプロキシ自動設定(PAC)のマッチングの動作方法が変更されています。
ウェブエンジンを含む主要なウェブブラウザで使用される PAC 表記規則では、変更された正規表現シンタックスを使用します。 これまで、pacmanager は通常の正規表現を使用してマッチングを行っていました。 ブラウザと同様のマッチングを使用するため、shExpMatch 関数を変更しています。
この変更により、RoomOS はネットワーク内の他のウェブクライアントと同じ PAC ファイルでマッチングを行います。 RoomOS 専用に作成された PAC ファイルは、意図した動作を維持するために更新が必要な可能性があります。
PAC ファイルの評価は、RoomOS ソフトウェアの 2 か所で行われます。
-
独自のトラフィック用のウェブエンジン。
-
他のすべての HTTP トラフィックの pacmanager: HttpFeedback、Webex プロビジョニング、コールシグナリングなど。
PAC ファイルでは、shExpMatch(string, pattern) 関数を使用できます。
文字列がパターンと一致する場合は true、それ以外は false を返します。
この 2 つの表記方法の主な違いは次のとおりです。「REGEX」は従来の正規表現、「BROWSER」はウェブブラウザの表記を指します。
ピリオド「.」
-
REGEX: 「.」は 1 つの文字に一致します。これは、量指定子を用いて繰り返すことができます。
-
BROWSER: 「.」はそのまま、ピリオドとしてマッチングします。
アスタリスク「*」:
-
REGEX: 「*」は項目の後の 0 個以上の量指定子ですが、それ自身のマッチングはしません。
-
BROWSER: 「*」は 0 個以上の文字と一致します。
疑問符「?」:
-
REGEX: 「?」は項目の後の 0 または 1 の量指定子、または「*」量指定子を非グリーディに変更できますが、それ自身のマッチングはしません。
-
BROWSER: 「?」は 1 文字とマッチングします。
表現全体がマッチングするかどうかは次の通りです。
-
REGEX: 先頭の「ˆ」および末尾の「$」を使用しない場合、パターンは文字列全体と必ずしも一致している必要はありません。文字列に一致する部分があればマッチしていると見なされます。
-
BROWSER: 常に文字列がパターンと完全に一致している必要があります。
例
「provider.domain」のすべてのホスト名と一致するが、「otherprovider.domain」、「provider.domain.tld」、「providersdomain」は一致しないようにします。
REGEX:
shExpMatch(url, "ˆ.*\\.provider\\.domain$")
BROWSER:
shExpMatch(url, "*.provider.domain")
「proxy1.domain」、「proxy2.domain」などと一致するが、「proxytest.domain」は一致しないようにします。
REGEX:
shExpMatch(url, "ˆproxy.\\.domain$")
BROWSER:
shExpMatch(url, "proxy?.domain")
他のリソース
PAC ファイル形式の詳細については、https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file を参照してください。