Skip to main content
Version: 3.14.x.x LTS

UnbluFilter

The UnbluFilter allows integration of the Unblu Co-Browsing solution with the Nevis Security Suite. The filter acts as a wrapper of the filter library by Unblu distributed with nevisProxy. The filter adds co-browsing-specific code to HTML content sent to the client. It also forwards selected resources from the responses to a co-browsing server as necessary. An Unblu Co-browsing server must be configured for this to work.

A typical configuration is to map the UnbluFilter, the application backend and the Unblu server behind an IdentityCreationFilter. The UnbluFilter and the application backend are mapped to the application URL. The Unblu server is usually mapped to '/unblu'.

UnblueFilter Co-Browsing Flow
Classname
ch::nevis::isiweb4::thirdparty::cobrowsing::unblu::UnbluFilter
Library
libUnbluFilter.so.1

Configuration

NameType, Usage Constraints, DefaultsDescription
UnbluCompatModeinteger; optional; default: -1Several changes have been made to the UnbluFilter so it is compatible with newer versions of the Unblu server. With the UnbluCompatMode you configure what Unblu-server and UnbluFilter version to use.-1 (default): this will still use the original implementation of theUnbluFilter.It has been set as default so that existing instances using theUnbluFilterwill still work correctly. 4: Set it to 4 if the Unblu server has version 4 or lower. On existing instances, you can set it to 4 if no BaseUrlHeader or BaseUrlPattern is configured. * 5: set it to 5 if the Unblu server has version 5 or higher.
UnbluConfigModeLOCAL or REMOTE; optional default: LOCALFor UnbluCompatMode > 0 only:
- LOCAL: it will be taken from the file configured as 'UnbluConfigFile'
- REMOTE: it will download it from the Unblu server behind the UploadServlet
UnbluRemoteConfigUrlstring; optional; default: <UnbluSystemPath>/<UnbluServerInterfacePath>Only valid if UnbluConfigMode is set to REMOTE: the URL where to get the config from.
UnbluFilterLibFilestring; optional; default: /var/opt/nevisproxy/<instance_name>/work/WEBINF/lib/libunblufilter.soPath to the external Unblu filter library. Only needed for UnbluCompatMode==-1. For all other UnbluCompatMode it will be ignored
UnbluDefaultCharsetstring; optional; default: iso-8859-1For UnbluCompatMode > 0 only. Charset to be used by default.
UnbluApiKeystring; mandatory if UnbluCompatMode >=5, ignored for all other UnbluCompatModeThe api key for the Unblu server.
UnbluConfigFilestring; optional; default: /var/opt/nevisproxy/<instance_name>/conf/unblu.confName of the JSON configuration file for the Unblu filter library. A sample unblu.conf is provided, you may need to customize it for particular applications.
UploadServletstring; requiredThis is the name of the Http(s)ConnectorServlet used for uploading resources on the Unblu server.
UnbluPathstring; required; default: /unbluThe path prefix for Unblu server requests. The configured path on the co-browsing server needs to be reachable by the client. In a typical setup, it should be proxied appropriately. This setting must correspond to com.unblu.identifier.publicPathPrefixPattern on the co-browsing server.
UnbluSystemPathstring; optional; default: /sys-unbluThe path prefix for resource uploads on the Unblu server. Resources are only uploaded by UnbluFilter from within nevisProxy. The path should not be reachable by the client, it does not need to be proxied. This setting must correspond to com.unblu.identifier.systemPath-PrefixPattern on the co-browsing server.
UnbluServerInterfacePathstring; optional, advanced; default: rest/filterBackendThe path to the interface of the Unblu server where resources are uploaded. This setting complements unbluSystemPath and the configuration of the servlet referred to by UploadServlet.
UnbluURLstring; requiredURL of the Unblu server as seen by the client. In a typical setup, the co-browsing server is behind a nevisProxy instance. The unbluURL should therefore point to the proxy and an appropriate mapping must be configured. In the usual configuration its the URL to the root of the Unblu server: https://<unblu-server host name>:<port>/
MaxUploadSizeinteger; optional; default: 512KMaximal length (in bytes) of HTTP responses that are uploaded as resources on the Unblu server.
MaxInjectionSizeinteger; optional; default: 512KMaximal length (in bytes) of a buffer used when injecting co-browsing code in HTML responses.
PropagateUserIdToUploadServletstring; optional; default: not configuredName of the HTTP header containing user.auth.UserId to send in uploads via UploadServlet.
OriginalUrlPrefixstring; optional, advanced; default: not configuredConfigures the base URL that is sent to the UploadServlet instead of the hostname received in the Host header. Accepts conditions and parameters for normalization
BaseUrlHeaderstring; optional, advanced; default: not configuredConfigures the name of a HTTP header the base URL for UploadServlet should be extracted from. If present, this value takes precedence over OriginalUrlPrefix.Only supported for UnbluCompatMode==-1. For all UnbluCompatMode the parameter OriginalUrlPrefix should be used instead.
BaseUrlPatternstring; optional, advanced; default: not configuredA regular expression for validating BaseUrlHeader. This parameter should be configured whenever the BaseUrlHeader is defined. A header value that does not match the pattern is ignored. Original-UrlPrefix is used if configured. Otherwise, the Host header is used. Only supported for UnbluCompatMode==-1. For all UnbluCompatMode the parameter OriginalUrlPrefix should be used instead.
Deprecated

The parameters BaseUrlHeader and BaseUrlPattern are only evaluated for UnbluCompatMode==-1 and will be soon deprecated.

For all UnbluCompatMode, use the parameter OriginalUrlPrefix instead.

See also the following sample configuration:

<init-param>
<param-name>BaseUrlHeader</param-name>
<param-value>TheBaseUrlHeader</param-value>
</init-param>
<init-param>
<param-name>BaseUrlPattern</param-name>
<param-value>.*</param-value>
</init-param>

can be rewritten to:

<init-param>
<param-name>OriginalUrlPrefix</param-name>
<param-value>
Condition:HEADER:TheBaseUrlHeader:.*
HEADER:TheBaseUrlHeader
</param-value>
</init-param>
UnbluFilter example

For a sample filter configuration, check the UnbluFilter.example file in the examples directory.