diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Proxy/forms/main.xml b/src/opnsense/mvc/app/controllers/OPNsense/Proxy/forms/main.xml index 39ad8eb92..f3a5a05ab 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Proxy/forms/main.xml +++ b/src/opnsense/mvc/app/controllers/OPNsense/Proxy/forms/main.xml @@ -537,6 +537,24 @@ true true + + proxy.forward.icap.whiteList + + select_multiple + + + You may use a regular expression, use a comma or press Enter for new item.
+
+ Examples:
+ mydomain.com -> matches on *.mydomain.com
+ ^https?:\/\/([a-zA-Z]+)\.mydomain\. -> matches on http(s)://textONLY.mydomain.*
+ \.gif$ -> matches on \*.gif but not on \*.gif\test
+ \[0-9]+\.gif$ -> matches on \123.gif but not on \test.gif
+
+
TIP: You can also paste a comma separated list into this field.
]]>
+ Regular expressions are allowed. + true +
diff --git a/src/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml b/src/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml index ce89728cc..2e5fca510 100644 --- a/src/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml +++ b/src/opnsense/mvc/app/models/OPNsense/Proxy/Proxy.xml @@ -399,6 +399,9 @@ 60 Y + + N + diff --git a/src/opnsense/service/templates/OPNsense/Proxy/squid.acl.conf b/src/opnsense/service/templates/OPNsense/Proxy/squid.acl.conf index ff270d2c1..608f3c22b 100644 --- a/src/opnsense/service/templates/OPNsense/Proxy/squid.acl.conf +++ b/src/opnsense/service/templates/OPNsense/Proxy/squid.acl.conf @@ -116,6 +116,19 @@ adaptation_access request_mod deny to_localhost {% endif %} http_access deny to_localhost +{% if helpers.exists('OPNsense.proxy.forward.icap.whiteList') %} +# ACL - Whitelist - User defined (whiteList) +{% for element in OPNsense.proxy.forward.icap.whiteList.split(",") %} +{% if '^' in element or '\\' in element or '$' in element or '[' in element %} +acl whiteList_icap url_regex {{element}} +{% else %} +acl whiteList_icap url_regex {{element|replace(".","\.")}} +{% endif %} +{% endfor %} +adaptation_access response_mod deny whiteList_icap +adaptation_access request_mod deny whiteList_icap +{% endif %} + # Auth plugins include /usr/local/etc/squid/auth/*.conf