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

Application Configuration

This section describes the global elements of nevisLogRend, i.e. elements that are not tied to a particular rendering engine.

Configuration Files

The following table lists the configuration files that contain the global configuration of nevisLogRend. Anything configured in these files applies to all login applications.

NameDescription
logrend.propertiesContains general configuration parameters required for proper operation of nevisLogRend and interoperation with nevisProxy and nevisAuth.
log4j.xmlStandard log4j configuration file.
mimetype.propertiesUsed to extend default mime-type mappings in the following format: <file_extension>=<mimetype>

Global Configuration

The following table lists the global configuration parameters defined in logrend.properties, sorted by topic.

NameDescription
Global
application.loginapp.defaultThe default login application that is used if no application matches the value received in the GUI descriptor domain attribute (or in the legacy isiwebappid header).
application.loginapp.currentLogin application override. If specified, this login application will always be used.
Integration
application.webdata.pathparamName of the HTTP parameter for providing the path for static resources. As it has to be accessible to the client, this location is usually forwarded by the reverse proxy. Default value: logrendresourcepath
application.webdata.pathparam.defaultThe default value for the HTTP parameter described above. Default value: /login/resources
application.webdata.pathPath to webdata directory for static resources. nevisProxy must forward all requests within this path to nevisLogRend. {0} is replaced with the query parameter defined via application.webdata.pathparam (provided by nevisProxy) {1} is replaced with the context path of the webapp (without the leading /) {2} is replaced by a slash if both {0} and {1} contain a value. If the resulting path is not empty, a trailing slash is added. Default value: {0}{2}{1}
Caching
cache.revalidate.delayTime in minutes after which a cache-entry should be checked for validity. Validity checking is done against the login application's appinfo file. Set this value to 0 to turn revalidation off completely. Default value: 15, set to 0 to turn off revalidation completely. Hint: For short development roundtrips, you can set this value to -1 (always revalidate)
cache.sourceRead cached data from files (file) or from classloader (class). If both are given (comma separated), try to find the file in the given order. Default value: file
cache.maxsizeMaximum number of elements (files or resources if the classloader is used) that are stored in the cache.Default value: 10000
GUI Descriptor
application.gui.litdictPerform LitDict mapping on GUI labels Default value: yes
application.gui.substitutionLabel attributes in the GUI descriptor received from nevisAuth are mapped to literal dictionary entries, if configured. The labels may also contain variable references that are recursively evaluated. The process is essentially the same as in nevisAuth.Label values may contain references to GUI descriptor elements, using the ${bean.gui.<name>} syntax. <name> references an element in the GUI descriptor whose value attribute will be substituted for the variable.Labels can reference other labels. This can be useful to avoid duplication of common text fragments. Use the ${bundle.<key>} syntax to substitute other label values for the variable.If a page needs to display the server's time one can use the placeholder ${time} which displays the server time in GMT format. For an own Dateformat one can use ${time.mydateformat} where mydateformat is any Date pattern according to the JAVA SimpleDateFormat API.Default value: yes
keytag.start keytag.endTags to be used for identifying variables in GUI labels. Default value: ${ and }, respectively
Miscellaneous
application.inputs.htmlencodeHTML-encode any inputs before putting them in the output. Only set to no if the reverse proxy already encodes the user inputs.If application.render.content.type is set to anything containing "JSON" or "Javascript" (case insensitive), encoding is done for use inside a Javascript string literal instead.Default value: yes
application.inputs.htmlencode.guielemsEncode GUI elements for the content-type (works for Velocity templates only). Default value: no (for backwards compatibility)
application.render.content.typeSets the content-type header. Default value: text/html; charset=UTF-8 (Charset is taken from system property file.encoding if set.)
velocity.Prefix to pass parameters directly to the Velocity engine. The velocity. prefix will be removed before passing it through to Velocity. Example: velocity.input.encoding = "UTF-8"

Additionally, some global parameters are passed via system properties. These are defined in the vmargs.conf configuration file of the nevisLogRend instance.

System PropertyDescription
ch.nevis.logrend.spooldirThe spool directory to use. This is where nevisLogRend expects login application data. Usually, there is no need to change this parameter.
file.encodingSets the default encoding. This property controls the encoding used by the JVM when reading files, as well as the content type of the HTTP response. Default value: UTF-8

Login Application Configuration

The following sections describe the configuration parameters that can be set per application. These parameters are defined in the login application's default.properties file.

NameDescription
Localization
application.languagesSupported languages, comma-separated ISO-639 language codes. Localized texts are stored in the text_${language}.properties files.Example:application.languages=en,de
application.languages.aliasesAliases for supported languages if internal codes are used (comma separated ISO=alias list).Example:application.languages.aliases=en=e,de=g
application.language.defaultThe default language.Example:application.languages.default=en
application.countries.defaultDefault country (ISO-3166 country code).Example:application.countries.default=CH
application.date.formatDate format (see java.text.SimpleDateFormat class reference for details).Example:application.date.format=dd.MM.yyyy / HH:mm z
application.date.showTimeZoneWithDSTSet to yes to display timezone with a different name during daylight savings time (e.g., CET -> CEST).Example:application.date.showTimeZoneWithDST=yes
application.language.source.$indexThis property is used to configure how the language is determined. Mechanisms are ordered, with lower indices indicating higher priorities.gui: The language is taken from the GUI descriptor sent by nevisAuth / nevisProxy. This enables setting the language in the AuthStates (e.g., using information from a backend).browser: The language is taken from the Accept-Language HTTP header sent by the user agent.header: The language can alternatively be taken from any HTTP header.cookie:$name: The language is extracted from the named cookie.param:$name: The language is extracted from the named HTTP parameter (e.g., query string).uri:$patt: The language is extracted from the URL. Set patt to a regular expression describing the login URI and the position holding the language. You have to use Java regular expression syntax. The pattern must be formed so that the first capturing group returns the ISO-639 language code.Example:`application.language.source.1=param:languageapplication.language.source.2=uri:^/login/((en
application.language.cookie.$lang=$name:$value[:$domain[:$path[:$ttl]]]A language cookie can be set depending on the language that resulted in the language determination process described in the previous sections.Example:application.language.cookie.de=LANG:de
application.language.cookie.defaultThis property can be used to set a language cookie even if no language could be determined.
application.language.cookie.secureSet this property to ’true’ to activate the secure flag for the issued language cookie.
Caching
cache.html.exemptHTML files can be exempted from caching (e.g., an operating information file is usually exempted because it can be updated from outside at any time).Example:cache.html.exempt={0}/OperatingInfos.html

File Serving

Requests to static resources are obviously made by unauthenticated users. Also, nevisProxy, being unaware of the files available in nevisLogRend, is unable to filter out invalid requests. Therefore, all files provided by nevisLogRend (e.g., images, style sheets, HTML pages) are served using a servlet that will only provide the contents of a file if all of the following is true:

  1. The file resides logically within nevisLogRend's spool directory inside the directory data. Going up directories using "../" is not permitted. (Currently, hyperlinks can be placed within this directory, thus allowing outside files to be accessed. This possibility was left open on purpose as, for instance, files with operating information might be only available within a different directory.)
  2. The files reside within a subdirectory webdata. Thus, no property files etc. will ever be transferred.
  3. The file has an extension that is either recognized as a default (currently: gif, jpg, jpeg, png, js, html, css) or is listed in the mimetype.properties file as a valid extension with corresponding MIME type.

All configuration files read from the file system are subject to restrictions 1 and 3 (with a different set of allowed extensions).