Estamos cambiando cómo funciona la coincidencia de la configuración automática de proxy (PAC) para pacmanager en el software RoomOS.
La convención PAC, utilizada por los principales exploradores web, incluido el motor web, utilizará una sintaxis de expresión regular modificada. Hasta ahora, pacmanager ha utilizado expresiones regulares comunes para la coincidencia. Estamos cambiando la función shExpMatch para que utilice una coincidencia similar a los navegadores.
Este cambio significa que RoomOS trabajará con las mismas coincidencias PAC que otros clientes web. Es posible que los archivos PAC escritos específicamente para RoomOS deban actualizarse para seguir trabajando como se desea.
La evaluación del archivo PAC se realiza en dos lugares separados del software RoomOS:
-
El motor web para el tráfico propio.
-
Y pacmanager para todos los demás tráficos HTTP: HttpFeedback, aprovisionamiento Webex, señalización de llamadas y más.
Un archivo PAC puede hacer uso de esta función: shExpMatch(cadena, patrón)
Se vuelve verdadero si la cadena coincide con el patrón. De lo contrario, es falso.
A continuación, se enumeran las principales diferencias entre las dos convenciones. "REGEX" son las expresiones regulares tradicionales y "NAVEGADOR" es la convención del explorador web.
El signo de punto: "."
-
REGEX:. coincide con un solo carácter que se puede repetir con un cuantificador
-
NAVEGADOR:. solo coincide con un carácter de punto literal
El asterisco: "*"
-
REGEX: * es un cuantificador de cero o más después de un elemento, pero no tiene coincidencias por su cuenta
-
NAVEGADOR: * coincide con cero o más caracteres
El signo de interrogación: "?"
-
REGEX: ? es un cuantificador de cero o uno después de un elemento o puede modificar el cuantificador * como no expansivo, pero no tiene coincidencias por su cuenta
-
NAVEGADOR: ? coincide con un solo carácter
Si la expresión completa debe coincidir:
-
REGEX: sin usar los ˆ iniciales y los $ finales, no es necesario que el PATRÓN coincida con toda la CADENA. Es suficiente que la CADENA contenga una subcadena que coincida.
-
NAVEGADOR: siempre es necesario que la CADENA coincida exactamente con el PATRÓN
Ejemplos
Queremos que coincidan todos los nombres de host en "provider.domain", pero no en "otherprovider. domain", "provider.domain.tld" o "providersdomain":
REGEX:
shExpMatch(url, "ˆ.*\\.provider\\.domain$")
NAVEGADOR:
shExpMatch(url, "*.provider.domain")
Queremos hacer coincidir "proxy1.domain", "proxy2.domain", y así sucesivamente, pero no "proxytest. domain":
REGEX:
shExpMatch(url, "ˆproxy.\\.domain$")
NAVEGADOR:
shExpMatch(url, "proxy?.domain")
Otros recursos
Para obtener más información sobre el formato de archivo PAC, consulte: https://developer.mozilla.org/en-US/docs/Web/HTTP/Proxy_servers_and_tunneling/Proxy_Auto-Configuration_PAC_file.