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

Application Configuration

Global Configuration

The following list shows the global configuration parameters defined in logrend.properties, sorted by topic.

Global

  • application.loginapp.default

    The default login application that is used as a fallback if no application matches the value received in the GUI descriptor domain attribute (or in the legacy isiwebappid header).

  • application.loginapp.current

    Login application override. If specified, this login application will always be used.

Integration

  • application.webdata.pathparam

    Default value: logrendresourcepath

    Name 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.

  • application.webdata.pathparam.default

    Default value: /login/resources

    The default value for the HTTP parameter described above.

  • application.webdata.path

    Default value: {0}{2}{1}

    Path 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.

Caching

  • cache.revalidate.delay

    Default value: 15 (set to 0 to turn off revalidation completely)

    Time 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.

    For short development roundtrips, you can set this value to -1 (always revalidate)

  • cache.source

    Default value: file

    Read cached data from files (file) or from classloader (class). If both are given (comma separated), try to find the file in the given order.

  • cache.maxsize

    Default value: 10000

    Maximum number of elements (files or resources if the classloader is used) that are stored in the cache.

GUI Descriptor

  • application.gui.litdict

    Default value: yes

    Perform LitDict mapping on GUI labels.

  • application.gui.substitution

    Default value: yes

    Label 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 time, you can use the placeholder ${time} which displays the server time in GMT format. For a different date format, you can use ${time.<mydateformat>} where <mydateformat> can be any Date pattern according to the JAVA SimpleDateFormat API.

  • keytag.start, keytag.end

    Default value: ${ and }, respectively

    Tags to be used for identifying variables in GUI labels.

Miscellaneous

  • application.inputs.htmlencode

    Default value: yes

    HTML-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.

  • application.inputs.htmlencode.guielems

    Default value: no (for backwards compatibility)

    Encode GUI elements for the content-type (works for Velocity templates only).

  • application.render.content.type

    Default value: text/html; charset=UTF-8

    Sets the content-type header. The 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"

System Properties

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

  • ch.nevis.logrend.spooldir

    The spool directory to use. This is where nevisLogRend expects login application data. Usually, there is no need to change this parameter.

  • file.encoding

    Default value: UTF-8

    Sets 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.

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.

Localization

  • application.languages

    Supported languages, listed using comma-separated ISO-639 language codes. Localized texts are stored in the text_${language}.properties files.

    Example
    application.languages=en,de
  • application.languages.aliases

    Aliases for supported languages if internal codes are used, listed in the following format: <ISO-639 language code 1>=<Internal language code 1>,<ISO-639 language code 2>=<Internal language code 2>.

    Example
    application.languages.aliases=en=e,de=g
  • application.language.default

    The default language.

    Example
    application.languages.default=en
  • application.countries.default

    Default country (ISO-3166 country code).

    Example
    application.countries.default=CH
  • application.date.format

    Date format (see java.text.SimpleDateFormat class reference for details).

    Example
    application.date.format=dd.MM.yyyy / HH:mm z
  • application.date.showTimeZoneWithDST

    Set 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.$index

    This property is used to configure how the language is determined. Mechanisms are prioritized, 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.

    Examples
    application.language.source.1=param:language
    application.language.source.2=uri:^/login/((en|de))/.*$
    application.language.source.3=cookie:lang
    application.language.source.4=gui
    application.language.source.5=browser

    If none of the configured mechanisms yield a result, the following policy is applied:

    1. Use the isiweblang HTTP header if given (backward compatibility behavior)
    2. Use the language provided by the user agent.
    3. Use the default language if the language is not among the supported ones.
  • 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.default

    This property can be used to set a language cookie even if no language could be determined.

  • application.language.cookie.secure

    Set this property to ’true’ to activate the secure flag for the issued language cookie.

Caching

  • cache.html.exempt

    HTML 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 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).