During installation of IP Filter plugin, configuration for localhost is bootstrapped into /hippo:configuration/hippo:modules/ipfilter/hippo:moduleconfig/localhost. To make the configuration work on other environments, please make a copy of this node with a descriptive name like ‘staging’ or ‘production’. Alternatively, if you want one configuration set, rename it to ‘all-envs’.
By default, we match a host configuration set based on X-Forwarded-Host header. To override this, you can add an optional multi-valued string property named forwarded-host-header, containing additional header names. This property must be set on hippo:moduleconfig node and this setting is applied to all configurations. Please note that we always add X-Forwarded-Host by default.
| Property | Type | Default | Description |
|---|---|---|---|
enabled |
boolean | true | Enable this configuration or not. |
hostnames |
multiple string | Mandatory list of hostnames, matching a browser request to this configuration set. | |
allowed-ip-ranges |
multiple string | Whitelist of ip address ranges e.g. 2001:4cb8:29d:1::/64. Controls access the both CMS as the site. | |
allow-cms-users |
boolean | true | To access the site, allow login with CMS credentials, with a basic authentication popup. |
match-all |
boolean | false | To access the site, both IP address must be whitelisted and login with CMS credentials must be successful. |
ignored-paths |
multiple string | List of paths that are ignored by the filters, e.g. /ping/.* | |
forwarded-for-header |
string | X-Forwarded-For | Name of the request header that is used for forwarding. |
cache-enabled |
boolean | true | Enabled by default, cache is used to store authenticated users. |
NOTES
hostnames and ignored-paths must be regular expression escaped like *.onehippo\.org or 127\.0\.0\.1allow-cms-users or allowed-ip-ranges must be enabled for a valid configuration.Below a configuration set node, there may be any number of subnodes of type hipposys:moduleconfig, named freely but descriptively, for example “ignore-fastly”. Such node has the following properties:
| Property | Type | Description |
|---|---|---|
ignored-header |
string | Name of header to ignore, for example ‘X-fastly’. |
ignored-header-values |
multiple string | Values of ignored-header that must be matched for the request to be ignored by the filter. |
Since version 2.2.0, an external properties file hippo-ipfilter.properties can be fed to the filters by either using a system property (by the same name) or just dropping it in Tomcat's conf directory. It supports values for the allowed-ip-ranges and ignored-paths properties.
Default hippo-ipfilter.properties file:
#
# Configuration file for Hippo IP Filter Plugin.
#
# Set up this file for Hippo CMS and/or site application using either:
# - system property -Dhippo-ipfilter.properties=file://hostname/path (hostname may be omitted if localhost)
# - placement in ${catalina.base}/conf
# - placement in ${catalina.home}/conf
#
# This file supports these properties:
# - allowed-ip-ranges: comma separated whitelist of ip address ranges
# - ignored-paths: comma separated paths that are ignored
#
allowed-ip-ranges=127.0.0.1,0:0:0:0:0:0:0:1
ignored-paths=/ping/.*
For recovery purposes, should administrators have locked everybody out of the CMS/console by misconfiguration, the possibility exists to disable the filters by setting system properties.
| System Property | Description |
|---|---|
hippo.cms-ipfilter.disabled |
Disables the CMS's org.onehippo.forge.ipfilter.cms.CmsIpFilter |
hippo.ipfilter.disabled |
Disables the site's org.onehippo.forge.ipfilter.hst.IpFilter |