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 - Both hostnames and ignored-paths must be regular expression escaped like *.onehippo\.org or 127\.0\.0\.1 - Either allow-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 |